【问题标题】:combining loops and some dplyr functions结合循环和一些 dplyr 函数
【发布时间】:2021-08-10 01:02:04
【问题描述】:

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

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()  

非常感谢。

【问题讨论】:

    标签: r loops dplyr conditional-statements counting


    【解决方案1】:

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

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

    【讨论】:

    • 非常感谢,这有帮助!
    • 谢谢!不幸的是,我无法对答案投票,因为我在 StackOverflow 上没有足够的“声誉”(我是该平台的新手)。但我非常感谢您的帮助。
    猜你喜欢
    • 2015-08-04
    • 2014-09-17
    • 1970-01-01
    • 1970-01-01
    • 2021-11-04
    • 2020-02-16
    • 1970-01-01
    • 2019-08-08
    • 1970-01-01
    相关资源
    最近更新 更多