2016-05-26 9 views
1

So versuche ich, Grep zu verwenden, um Muster zu finden und Werte innerhalb meiner einzigen Spalte Datenrahmen zu ersetzen. Ich möchte im Grunde Grep, dass sagt "alles nach dem Komma bis zum Ende der Zeichenfolge löschen". Ich schrieb den Ausdruck, und es funktioniert auf meinem Dummy-Vektor:Regex funktioniert, aber nicht auf Strings in meinem Vektor

> library(stringr) 
> pretendvector <- c("Hi","Hi,there","Hi there, how are you") 
>str_replace(pretendvector, regex(',.*$'),'') 
[1] "Hi"  "Hi"  "Hi there" 

Wenn jedoch den gleichen Ausdruck meinen Vektor anwenden (seit seiner für stringr ich die Spalte des Datenrahmen vektorisiert), es jeden Wert zurückzugibt in die Spalte und wendet den Ausdruck nicht an. Hat jemand eine Idee, warum das sein könnte?

+0

mit Es ist nicht klar, was Sie meinten, indem 'es jeden Wert in der column' Rückkehr haben Sie die Ausgabe auf einige zuweisen Objekt? d. h. 'newvector <- str_replace (pretendvector, regex (',. * $'), '')' – akrun

Antwort

0

Ich denke, das OP hat nicht die Ausgabe von str_replace einem neuen Objekt zugewiesen oder den Originalvektor aktualisiert. In diesem Fall kann

newvector <- str_replace(pretendvector, regex(',.*$'),'') 

Wir tun dies auch sub von base R

newvector <- sub(",.*", "", pretendvector) 
+0

Das hat funktioniert, danke! – ALW94