2016-05-11 41 views
-1

我有一个数据帧x 其中R:GSUB,比赛和删除

x[1]= "red monkey" 
X[2]= "blue whale" 
X[3]= "Pink Panther" 

等等...(因为它是一个大的数据集)

color=read.csv("colors.csv") 
color[,3] 
Blue 
Red 
White 
Grey 
Pink 
Red 
Green 

我要匹配如果X[i]包含color[,3]中的任何词,并且如果是,则将其删除。 即结果应该是另一个数据帧像这样

y[1]= "monkey" 
y[2]= "whale" 
y[3]= "Panther" 

等..

我怎样才能做到这一点。

在此先感谢。

回答

2

假设x是矢量,

gsub(paste(tolower(color[,3]), collapse='|'), '', tolower(x)) 
#[1] " monkey" " whale" " panther" 

#to trim the whitespaces, 
trimws(gsub(paste(tolower(color[,3]), collapse='|'), '', tolower(x))) 
#[1] "monkey" "whale" "panther"