2017-02-28 8 views
0

denke ich, der Titel ein wenig verwirrend ist, aber hier ist mein Problem: Ich habe 2 Vektoren, einen Text der andere enthältR: Entfernen Vektorelemente von Vektorelementen

text <- c("this is some text","some elements should be removed", "i hope you can help me with this text element problem") 
pattern <- c("text", "some","be") 

einige Sätze enthalten Und jetzt ich möchte alle Elemente aus pattern, die in Text entfernen, um Ergebnisvektor

text_result 
[1] "this is" 
[2] "elements should removed" 
[3] "i hope you can help me with this element problem" 

ich versuchte

text_result <- sapply(pattern, function(x) gsub(x, text, replacement ="")) 

oder

text_result <- sapply(text, function(y) sapply(pattern, function(x)gsub(x,y,replacement =""))) 

aber in beiden Fällen erhalte ich eine große Matrix mit

length(pattern)*length(text) elements 

Dank im Voraus!

+0

'gsub (paste0 (Muster, Kollaps = "|"), "", Text)' –

+0

funktionierte gut, danke! –

Antwort

0

können Sie versuchen:

`%notin%` <- function(x,y) !(x %in% y) 
lapply(strsplit(text," "),function(x) paste(x[x %notin% pattern],collapse=" ")) 
+0

hat auch gut funktioniert, eine Liste zurück, Danke! –

Verwandte Themen