2016-08-02 22 views
2

Ich versuche, auf eine Reihe von Zeichenketten zu verwenden gsub, die alle leicht im Wortlaut abweichen könnten;R gsub mehrere Bedingungen

I went to the store last night 
I went to the park yesterday 
I went to starbucks this morning 

Ich brauche gsub verwenden die ‚ich ... ging‘ zu ersetzen, aber manchmal wird es habe eine ‚die‘ und manchmal wird es nicht

Etwas Ähnliches, aber die folgenden funktioniert nicht richtig,

gsub('i went to [the|a-z]','REPLACED',string) 

REPLACED last night 
REPLACED yesterday 
REPLACED this morning 
+0

Soetwas ? 'Gsub ("Ich ging auf [die] * (Shop | Park | bucks)", "ERSETZT", data)' – FisherDisinformation

+0

@ user2100721 ​​er es in dem zweiten Codeblock setzen, glaube ich. – FisherDisinformation

+0

@ user2100721 ​​ist es im zweiten Block. danke – chattrat423

Antwort

2

Versuchen:

gsub("I went to (the)?[a-z]", "REPLACED", string) 
+0

Dies lässt den Laden | Park | bucks im String – FisherDisinformation

+0

Wie ich verstehe, wurde diese Art der Ausgabe – user2280549

+1

erwartet Wie ich, ' gestern diese morning' erwartet wurde FASSUNG ERSETZT letzte Nacht FASSUNG verstanden – FisherDisinformation

0

Sie die stringr Paket mit dem follo verwenden könnte Flügel regulären Ausdruck (an der Vorderseite des Strings verankert mit ^):

library(stringr) 
sentences <- c("I went to the store last night", 
       "I went to the park yesterday", 
       "I went to starbucks this morning") 
str_replace(sentences, "^I went to(the)?", "REPLACED") 
# [1] "REPLACED store last night"  "REPLACED park yesterday"   
# [3] "REPLACED starbucks this morning" 

Wenn es mehrere Instanzen innerhalb derselben Zeichenfolge zu ersetzen, können Sie die ^ wegzulassen und verwenden möchten str_replace_all()