R statistics: Wie man ein Wort genau grep

7

Ich würde gerne nach "Stickstoff" im folgenden Zeichenvektor grep und möchte bekommen Zurück nur der Eintrag, der "Stickstoff" enthält und nichts von dem Rest (z. B. Stickstofffixierung):

%Vor%

Ich habe so etwas versucht:

%Vor%

Aber das funktioniert nicht. Ich hoffe, dass mir jemand bei dieser Aufgabe helfen kann.

    
sabsirro 06.04.2012, 09:48
quelle

3 Antworten

13

Um die Indizes zu erhalten, die genau "Stickstoff" entsprechen, können Sie

verwenden %Vor%

Je nachdem, was Sie tun möchten, brauchen Sie möglicherweise nicht einmal das 'was', da varnames == "nitrogen" einen logischen Vektor von TRUE / FALSE ergibt. Wenn Sie nur so etwas wie "Stickstoff" durch "Sauerstoff" ersetzen möchten, sollte dies ausreichen.

%Vor%     
Dason 06.04.2012, 14:54
quelle
14

Obwohl die Antwort von Dason einfacher ist, könntest du eine exakte Übereinstimmung mit grep über:

machen %Vor%     
thelatemail 06.04.2012 11:47
quelle
2

Oder verwenden Sie fixed = TRUE , wenn Sie die tatsächliche Zeichenfolge ( regex lessly) anpassen möchten:

%Vor%

Weiß nicht über die Geschwindigkeitsprobleme, ich mag es, Dinge zu testen und behaupten, dass Ansatz A schneller ist als Ansatz B, aber theoretisch, zumindest aus meiner Erfahrung, sollte Indexierung / binäre Operatoren am schnellsten sein, also stimme ich für @ Dasons Ansatz. Beachten Sie auch, dass regex es immer langsamer ist als fixed = TRUE grep ing.

Ein kleiner Beweis ist unten angebracht. Beachten Sie, dass dies ein lahmer Test ist, und system.time sollte in replicate eingefügt werden, um (mehr) genaue Unterschiede zu erhalten, Sie sollten Ausreißer in ein Konto aufnehmen, etc. Aber sicherlich beweist dieser, dass Sie which ! =)

%Vor%     
aL3xa 06.04.2012 16:46
quelle

Tags und Links