Вы можете выполнить этот анализ с пакетом stringr
, однако я не думаю, что вам нужно использовать sapply
.
Рассмотрим следующий список ключевых слов и таблицу с твитами:
keyword_list <- c("crimes against women", "downloading tweets", "r analysis")
tweets <- data.frame(
tweet = c("Andhra Pradesh is the highest state with crimes against women",
"I am downloading tweets",
"I love r analysis",
"downloading tweets helps with my r analysis")
)
Сначала вы хотите объединить ваши ключевые слова в одно регулярное выражение, которое ищет любую из строк.
keyword_pattern <- paste0(
"(",
paste0(keyword_list, collapse = "|"),
")"
)
keyword_pattern
#> [1] "(crimes against women|downloading tweets|r analysis)"
Наконец, мы можем добавить столбец к фрейму данных, который извлекает ключевое слово из твита.
tweets$keyword <- str_extract(tweets$tweet, keyword_pattern)
> tweets
#> tweet keyword
#> 1 Andhra Pradesh is the highest state with crimes against women crimes against women
#> 2 I am downloading tweets downloading tweets
#> 3 I love r analysis r analysis
#> 4 downloading tweets helps with my r analysis downloading tweets
Как показывает последний пример, вам нужно подумать о том, что вы хотите делать, когда твит содержит несколько ключевых слов. В этом случае возвращаемое ключевое слово - просто первое найденное в твите. Однако вы также можете использовать str_extract_all
для возврата ВСЕХ ключевых слов, найденных в твите.