dplyr 聚合:平均所有列

Ric*_*ruz 0 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))
Run Code Online (Sandbox Code Playgroud)

IE

  Day Temp Humidity
1   1   30      0.5
2   1   20      0.2
3   2   10      0.1
4   2   50      0.5
Run Code Online (Sandbox Code Playgroud)

仅使用基本包,我将通过执行以下操作来计算每天的平均值:

aggregate(. ~ Day, df, mean)
Run Code Online (Sandbox Code Playgroud)

并得到:

  Day Temp Humidity
1   1   25     0.35
2   2   30     0.30
Run Code Online (Sandbox Code Playgroud)

但我想使用tidyverse。我知道,我可以做同样的事情:

df %>% group_by(Day) %>% summarise(Temp=mean(Temp), Humidity=mean(Humidity))
Run Code Online (Sandbox Code Playgroud)

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

Mar*_*ius 5

summarise_all 做这个:

df %>%
    group_by(Day) %>%
    summarise_all(mean)
Run Code Online (Sandbox Code Playgroud)