Мы могли бы использовать sapply
в списке keywords
и подсчитать количество строк, в которых keywords
, используя grepl
.
keywords <- c("I", "don't", "like", "you")
stack(sapply(keywords, function(x) sum(grepl(paste0("\\b", x, "\\b"), df$strings))))
# values ind
#1 5 I
#2 1 don't
#3 5 like
#4 5 you
Или способ tidyverse
будет
library(tidyverse)
tibble(keywords) %>%
mutate(Frequency = map_int(keywords, ~
sum(grepl(paste0("\\b", ., "\\b"), df$strings))))
. Приведенный выше подход даст количество строк с этим ключевым словом.Если вы хотите узнать, сколько раз определенное ключевое слово встречается во всех операторах, мы можем использовать str_count
из stringr
sapply(keywords, function(x) sum(stringr::str_count(df$strings, x)))
ИЛИ разбить строки на слова и подсчитать количество вхождений
sapply(keywords, function(x) sum(grepl(x, unlist(strsplit(df$strings, "\\s+")))))