在R中的数据帧列中查找字符串

时间:2014-07-14 19:45:13

标签: r grepl

所以,如果我有以下

list <- c("catdog","chicken","poop")
names <- c("Fabio","John","Jack")
df <- data.frame(names, list, stringsAsFactors=FALSE)

       names   list
1      Fabio catdog
2       John    cat
3       Jack    dog

假设list是一列字符串。我想知道怎样才能返回&#34; cat&#34; AND &#34; dog&#34;在出现一对之后,它们可能会出现更多次。我试过了:

want <- c("cat","dog")
df[grepl(paste(want,collapse="&"),df$list),]

我知道这适用于&#34; |&#34;由于某种原因,它没有使用&#34;&amp;&#34;。如果有人可以帮助我,请告诉我。谢谢!

1 个答案:

答案 0 :(得分:0)

如果'cat'和'dog'都不能在单个字符串中重复,这是一个选项。

df[grepl('(cat)|(dog).*(\\1|\\2)', df$list), ]