【问题标题】:Dplyr to count means by group and then quantiles for eachDplyr 按组计数平均值,然后为每个计数分位数
【发布时间】:2018-04-06 17:21:14
【问题描述】:

我的 dplyr 有问题,或者我只是不知道如何正确编码分位数部分。

我有一个要按 X 和 Y 分组的数据,然后计算每个组中 a 的平均值

dmean %>%
  group_by(x,y) %>%
   summarise(mean=mean(a))

这部分有效,没问题。 我如何继续代码以获得每组的最低 10% 和最高 10% 百分位数?

【问题讨论】:

  • 你试过quantile(a, 0.1)quantile(a, 0.9)吗?
  • dmean %>% group_by(sp, ika11) %>% summarise(mean=mean(e2)) %>% quantile(e2, 0.1) 给我错误代码:错误:不支持使用矩阵或数组进行列索引
  • summarize(mean=mean(e2), q10=quantile(e2, 0.1), q90=quantile(e2, 0.9))
  • 谢谢,这行得通!

标签: r dplyr mean quantile


【解决方案1】:

您可以在summarise 中放入多个表达式,如下所示:

library(dplyr)
mtcars %>% 
  group_by(cyl, am) %>% 
  summarise(mean = mean(mpg),
            quantile_10 = quantile(mpg, 0.1),
            quantile_90 = quantile(mpg, 0.9))
# A tibble: 6 x 5
# Groups:   cyl [?]
    cyl    am     mean quantile_10 quantile_90
  <dbl> <dbl>    <dbl>       <dbl>       <dbl>
1     4     0 22.90000       21.76       24.08
2     4     1 28.07500       22.38       32.85
3     6     0 19.12500       17.89       20.74
4     6     1 20.56667       19.96       21.00
5     8     0 15.05000       10.69       18.56
6     8     1 15.40000       15.08       15.72

【讨论】:

    猜你喜欢
    • 2013-11-05
    • 2020-06-10
    • 1970-01-01
    • 2016-11-26
    • 1970-01-01
    • 1970-01-01
    • 2022-10-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多