dplyr aggregate:平均所有列

时间:2018-02-20 00:38:05

标签: r dplyr

说我有以下数据框:

df <- data.frame(Day=c(1,1,2,2), Temp=c(30,20,10,50), Humidity=c(0.5,0.2,0.1,0.5))

  Day Temp Humidity
1   1   30      0.5
2   1   20      0.2
3   2   10      0.1
4   2   50      0.5

仅使用基础包,我会通过以下方式计算每天的平均值:

aggregate(. ~ Day, df, mean)

得到:

  Day Temp Humidity
1   1   25     0.35
2   2   30     0.30

但我想使用tidyverse。我知道,我也可以这样做:

df %>% group_by(Day) %>% summarise(Temp=mean(Temp), Humidity=mean(Humidity))

但有没有办法说,我想要每个列的平均值。我希望在我有几十列的情况下使用它。

1 个答案:

答案 0 :(得分:4)

summarise_all这样做:

df %>%
    group_by(Day) %>%
    summarise_all(mean)