2016-04-12 8 views
1

Wie entferne ich alle Zeilen aus einem Datenrahmen, die einen der Werte enthalten, die ich in einem Zeichenfolgenvektor zugewiesen habe? Ich habe versucht, Grepl, aber das scheint nur zu funktionieren, wenn ein Wort betroffen ist.Entfernen Sie alle Zeilen mit bestimmten Werten aus einer Zeichenfolge.

number <- c(1:5) 
text <- c("First text","Second text","Another text here","Yet another one","Last text") 
example <- as.data.frame(cbind(number,text)) 

    number    text 
1  1  First text 
2  2  Second text 
3  3 Another text here 
4  4 Yet another one 
5  5   Last text 

funktioniert nicht:

remove <- c("First","Yet") 
example[!grepl(remove,example$text),] 

Gewünschtes Ergebnis:

number    text 
1  2  Second text 
2  3 Another text here 
3  5   Last text 

Antwort

2

wir die Elemente in 'entfernen' zu einem einzelnen String von | (was bedeutet OR) getrennt paste können und füttern Sie es als pattern in grepl für die 'Text' Spalte, negieren Sie den logischen Vektor und dann die Zeilen von 'exampl e

example[!grepl(paste(remove, collapse="|"), example$text),] 
# number    text 
#2  2  Second text 
#3  3 Another text here 
#5  5   Last text 
+1

Funktioniert perfekt. Vielen Dank! – Joseph