2014-07-14 2 views
0

Donc, si je donne les résultats suivantscordes Trouver dans les colonnes de dataframe dans R

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 

liste est une colonne En supposant des chaînes. Je veux savoir comment puis-je retourner des lignes où "chat" et "chien" après avoir apparu une fois comme une paire, ils peuvent apparaître plusieurs fois. J'ai essayé:

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

Je sais que cela fonctionne avec "|" pour une raison quelconque, il ne fonctionne pas avec "&". Dites-moi si quelqu'un peut vous aider. Merci!

Répondre

0

Ceci est une option si ni 'cat' ni 'dog' ne peuvent être répétés dans une seule chaîne.

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