查找包含 R 中单词列表之一的文档

Find documents that include one of a list of words in R

我有两个数据框:msnbc 包含一列名为 text 的新闻抄本,dictionary 包含一列名为 search 的单词。我想要 return 一个包含 msnbc 的所有行的新数据框,其中 text 字段包含 search 列中的一个或多个单词。玩具数据:

msnbc <- data.frame(id=c(1,2,3), text=c("hello world", "goodbye world","hello friends"))
dictionary <- data.frame(search=c("hello","lorem","ipsum","dolor")

新数据集应包含 msnbc 的第一个和第三个元素,因为它们包含 dictionary$search

中的一个单词

我的第一个想法是使用 str_detect,但没有将字符串向量作为模式传递的选项。我的另一个想法是以某种方式使用 filter 但不确定如何实现:

new_msnbc <- msnbc %>%
    filter(dictionary$search %in% text)

但这并不像预期的那样有效。做这个的最好方式是什么? tidyverse 解决方案的奖励积分。

看来您可以使用 filtergrepl:

result <- msnbc %>%
filter(grepl(paste(dictionary$search, collapse="|"), text))