Пожалуйста, извините, если это похоже на дубликат вопроса. Я долго искал, но не смог сосредоточиться на одном.
У меня есть набор данных с колонкой для текста и другой с первым словом текста.
Есть еще два столбца для того, сколько людей было отправлено и сколько прочитало текст.
Пример данных:
df <- data.frame(Word = c("Happy", "Good", "Have", "Do"),
Text = c("Happy Birthday", "Good Morning", "Have a good day",
"Do you have happy news"),
Sent = c(10, 20, 15, 20),
Read = c(8, 12, 9, 13), stringsAsFactors = FALSE)
Я хочу рассчитать скорость чтения для каждого слова. Он рассчитывается из текстов, которые содержат это слово
Я попробовал приведенный ниже код, но, кажется, работает вечно, но без сообщения об ошибке.
Я знаю, что цикл не эффективен для 18К записей в моем случае, и я предпочитаю эффективное решение в R.
Ценю любую помощь в этом отношении.
for (i in 1:nrow(messages)){
word <- messages$Word[i]
messages$Rate[i] <- messages%>% filter(str_detect(string = Text, pattern = word)) %>% summarise(sum(Read)/sum(Sent))
}