Найти совпадения вектора строк в другом векторе строк

Я пытаюсь создать подмножество фрейма данных новостных статей, в которых упоминается хотя бы один элемент из набора ключевых слов или фраз.

# Sample data frame of articles
articles <- data.frame(id=c(1, 2, 3, 4), text=c("Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod", "tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,", "quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo", "consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse"))
articles$text <- as.character(articles$text)

# Sample vector of keywords or phrases
keywords <- as.character(c("elit", "tempor incididunt", "reprehenderit"))

#   id                                                                         text
# 1  1     Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
# 2  2 tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
# 3  3      quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
# 4  4    consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse

Учитывая вектор ключевых слов, подмножество должно содержать строки 1, 2 и 4, так как эти строки содержат один или несколько элементов вектора.

ни%in ниgrepl() работа, так как%in% Кажется, требуется, чтобы каждое слово во фрейме данных было векторизованным (articles$text %in% keywords результаты в четыреFALSEs) иgrep() кажется, не в состоянии обрабатывать векторизованные шаблоны (grep(keywords, articles$text) выдает ошибку). Кажется, что ни одна из функций не работает хорошо в нескольких измерениях (т. Е. Было бы легко найти одно слово во всех строках, но не во всех трех одновременно).

Каков наилучший способ найти и выбрать все строки фрейма данных, которые содержат хотя бы один из элементов вектора ключевых слов?

Ответы на вопрос(1)

Ваш ответ на вопрос