假设我有以下数据框:
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)
但是有没有办法说,我想要每列的平均值。我想在有几十个列的情况下使用它。
summarise_all 做这个:
df %>%
group_by(Day) %>%
summarise_all(mean)
Run Code Online (Sandbox Code Playgroud)