组合循环和一些 dplyr 函数

combining loops and some dplyr functions

我正在处理一个大型数据集,我试图在其中计算 TI 的数量 其中存储在名为“word”的列中的单词频率大于 0。 我设法使用 dplyr 包计算了这个(可能有更简单的方法 这样做但不幸的是我不是一个非常有效的编码器)。 我想使用循环对 select 个单词列表重复此练习。 假设我想对存储在以下向量中的所有单词重复我的练习(如下所示)

keywords <- c("contagion", "crisis", "risk")

我真的没有太多使用循环的经验。 如果有人可以帮助我解决这个问题,我将节省大量时间!

df <- data.frame(TI=c("A","B","C","D","E"),
                 word=c("contagion", "contagion", "crisis", "risk", "money"),
                 frequency=c(2, 2, 1, 3, 4))

count <- df %>% 
        filter(word=="contagion" & frequency>0) %>%
        group_by(TI) %>% 
        tally() %>% 
        nrow()  

非常感谢。

我们可以用map循环遍历'keywords',然后filter其中'word'是那个关键字,频率大于0,然后分组'TI',得到tally和行数

library(purrr)
library(dplyr)
map(keywords, ~ df %>%
                  filter(word == .x, frequency > 0) %>%
                  group_by(TI) %>%
                  tally() %>% 
                  nrow())