0

したがって、次のものがあれば

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

リストが文字列の列であると仮定します。「猫」と「犬」がペアとして一度出現した後、複数回出現する可能性がある行を返す方法を知りたいです。私は試した:

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

これは「|」で機能することを知っています 何らかの理由で「&」で機能しません。誰かがこれを手伝ってくれるかどうか教えてください。ありがとう!

4

1 に答える 1

0

これは、'cat' も 'dog' も 1 つの文字列内で繰り返すことができない場合のオプションです。

df[grepl('(cat)|(dog).*(\\1|\\2)', df$list), ]
于 2014-07-14T19:51:37.970 に答える