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.
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.
Obwohl die Antwort von Dason einfacher ist, könntest du eine exakte Übereinstimmung mit grep über:
machen %Vor% Oder verwenden Sie fixed = TRUE
, wenn Sie die tatsächliche Zeichenfolge ( regex
lessly) anpassen möchten:
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
! =)