从字符串中删除包含特定值的所有行

时间:2016-04-12 11:56:18

标签: r match rows grepl

如何从数据框中删除包含我在字符串向量中指定的任何值的所有行?我尝试过grepl,但只有在涉及到一个词时才能起作用。

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

不起作用:

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

期望的结果:

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

1 个答案:

答案 0 :(得分:2)

我们可以paste删除&#39;中的元素。以|分隔的单个字符串(表示OR)并在pattern中将其作为grepl提供给&#39;文本&#39;列,取消逻辑向量,然后对&#39;示例

的行进行子集化
 example[!grepl(paste(remove, collapse="|"), example$text),]
 # number              text
 #2      2       Second text
 #3      3 Another text here
 #5      5         Last text