说我有以下数据框:
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))
但有没有办法说,我想要每个列的平均值。我希望在我有几十列的情况下使用它。
答案 0 :(得分:4)
summarise_all
这样做:
df %>%
group_by(Day) %>%
summarise_all(mean)