【问题标题】:Calculate mean by group using dplyr package [duplicate]使用 dplyr 包按组计算平均值
【发布时间】:2018-03-21 13:10:59
【问题描述】:

我正在使用来自 ggplot2 的著名数据集“钻石”数据练习 dplyr 包。 我正在尝试计算按变量“切工”分组的钻石的平均“价格”。 我的代码如下。

price.cut <- diamonds %>%
group_by(cut) %>%
summarize(Mean = mean(price, na.rm=TRUE))

我的期望是得到按“cut”变量分组的平均价格。但是,我只得到一个值,即价格的总平均值。

>price.cut
   Mean
1 3932.8

我做错了什么?

【问题讨论】:

    标签: r dplyr


    【解决方案1】:

    原因可能是我们不小心加载了plyr 库。那个包里还有一个summarise

    diamonds %>%
        group_by(cut) %>%
        dplyr::summarize(Mean = mean(price, na.rm=TRUE))
    # A tibble: 5 x 2
    #        cut     Mean
    #      <ord>    <dbl>
    #1      Fair 4358.758
    #2      Good 3928.864
    #3 Very Good 3981.760
    #4   Premium 4584.258
    #5     Ideal 3457.542
    

    如果我们使用plyr::summarise

    diamonds %>% 
       group_by(cut) %>%
       plyr::summarize(Mean = mean(price, na.rm=TRUE))
    #    Mean
    #1 3932.8
    

    【讨论】:

    • 非常感谢阿克伦!效果很好,问题解决了:)
    • @akrun 是否可以在不使用 magrittrdplyr 的情况下使用 %&gt;%?当你使用dplyr::summarize(不加载包)
    • @PoGibas magrittr 是通过命名空间加载的,尽管我没有专门加载它
    猜你喜欢
    • 1970-01-01
    • 2021-12-11
    • 2012-04-05
    • 1970-01-01
    相关资源
    最近更新 更多