2016-08-26 9 views
4

Ich weiß, dass mit grep in R, wenn Sie eine bestimmte Zeichenfolge am Anfang finden möchten, verwenden Sie ^, aber wie verwende ich es mit einer Variablen?Verwenden^mit einer Variablen

txt <- c("the cat ate the bill", "bill was late") 

dann

grep("^bill", txt) 

kehrt 2.

Ich möchte eine Funktion schreiben, die ein Variablenwort x als Eingabe nimmt und findet, ob eine Zeile in txt mit diesem Wort beginnt. Mein erster Versuch ist:

extract_word<-function(x){ 
        grep(^x, txt) 
        } 

aber ich erhalte eine Fehlermeldung:

error unexpected^in: "extract_word<-function(x, txt){ grep(^

+1

Wenn Sie reguläre Ausdrücke verwenden, diese Funktionalität von 'startsWith' vorgesehen ist -' start (? txt, x) ' –

Antwort

7

Das pattern Argument grep nur eine Zeichenfolge ist. Wenn Sie möchten, dass Ihre Musterzeichenfolge den Wert x mit einer ^ davor hat, dann erstellen Sie einfach diese Zeichenfolge. paste0 ist praktisch für Strings zusammen ohne Leerzeichen kleben:

grep(paste0("^", x), txt) 

mit Ihrem Beispiel:

txt <- c("the cat ate the bill", "bill was late") 

x = 'bill' 
grep(paste0("^", x), txt) 
# [1] 2