【发布时间】:2017-01-20 12:20:22
【问题描述】:
我正在使用 dplyr 的 group_by 和 summarise 来获得每个 group_by 变量组合的平均值,但也想单独获得每个 group_by 变量的平均值。
例如,如果我运行
mtcars %>%
group_by(cyl, vs) %>%
summarise(new = mean(wt))
我明白了
cyl vs new
<dbl> <dbl> <dbl>
4 0 2.140000
4 1 2.300300
6 0 2.755000
6 1 3.388750
8 0 3.999214
但我想得到
cyl vs new
<dbl> <dbl> <dbl>
4 0 2.140000
4 1 2.300300
4 NA 2.285727
6 0 2.755000
6 1 3.388750
6 NA 3.117143
8 0 3.999214
NA 0 3.688556
NA 1 2.611286
即获得组合和单独变量的平均值
编辑
Jaap 将此标记为重复,并将我指向Using aggregate to apply several functions on several variables in one call 的方向。我在那里查看了引用 dplyr 的 jaap 的答案,但我看不出它是如何回答我的问题的?您说要使用summarise_each,但我仍然不明白如何使用它来分别通过变量获得每个组的平均值?对不起,如果我是愚蠢的......
【问题讨论】:
-
我认为你应该试试这个你必须分解你的分组变量。 mtcars %>% mutate(cyl=as.factor(cyl),vs=as.factor(vs)) %>% group_by(cyl,vs) %>% summarise(new=mean(wt))
-
一切正常。
-
运行上面仍然只显示
cyl和vs组合的方法,而不是单独显示