Поиск строк в столбцах фрейма данных в 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

Предполагая, что список представляет собой столбец строк. Я хочу знать, как я могу вернуть строки, в которых "кошка" И "собака" после появления в виде пары один раз могут появляться несколько раз. Я старался:

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

Я знаю, что это работает с "|" по какой-то причине он не работает с "&". Дайте мне знать, если кто-нибудь может помочь с этим. Спасибо!


person theamateurdataanalyst    schedule 14.07.2014    source источник


Ответы (1)


Это вариант, если ни «кошка», ни «собака» не могут повторяться в одной строке.

df[grepl('(cat)|(dog).*(\\1|\\2)', df$list), ]
person Matthew Plourde    schedule 14.07.2014