У меня есть два кадра данных: msnbc
содержит столбец стенограмм новостей с именем text
, а dictionary
содержит столбец слов с именем search
.Я хочу вернуть новый фрейм данных, который включает все строки 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
.