R:gsub,匹配和删除

R: gsub, match and remove

我有一个数据框x 其中

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"

等等..

我该怎么做。

提前致谢。

假设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"