Один из подходов - создать чередование регулярных выражений, содержащее все подстроки. Затем используйте gsub
, чтобы удалить все подстроки из входных данных, где они могут быть найдены. Наконец, оставьте в фрейме данных только строки, длина слов которых после замены по-прежнему больше нуля.
words <- c("is", "am", "are", "I", "He", "She", "toy", "jam", "kite", "playing", "eating")
regex <- paste0("(?:", paste(words, collapse="|"), ")")
example <- data.frame(word=c("Iamplayingkite", "Itiseatingbone"), stringsAsFactors=FALSE)
example[nchar(gsub(regex, "", example$word)) > 0,]
[1] "Itiseatingbone"
Что касается вывода, что «отсутствующие» слова - это It
и bone
, вы не можете легко сделать это, не имея базы знаний, которая говорит вам, что It
и bone
- это четные слова. Регулярное выражение само по себе не может понять это, не без ссылки на go by.