使用Tidyverse,是否有告诉summarise
对所有列应用相同功能的快捷方式?例如,是否有一种方法可以在不拼写所有列名的情况下获得以下结果? (在我正在使用的数据集中,有更多列。)
> library(tidyverse)
> mtcars %>% group_by(cyl) %>% summarise(mpg=mean(mpg), disp=mean(disp),
hp=mean(hp), drat=mean(drat), wt=mean(wt), qsec=mean(qsec), vs=mean(vs),
am=mean(am), gear=mean(gear), carb=mean(carb))
# A tibble: 3 x 11
cyl mpg disp hp drat wt qsec vs am gear carb
<dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 4 26.7 105. 82.6 4.07 2.29 19.1 0.909 0.727 4.09 1.55
2 6 19.7 183. 122. 3.59 3.12 18.0 0.571 0.429 3.86 3.43
3 8 15.1 353. 209. 3.23 4.00 16.8 0 0.143 3.29 3.5
如果我想要整个表的平均值,则可以使用sapply(mtcars, mean)
。但是在这里,我想要每个小组的钱。
答案 0 :(得分:1)
我们可以使用summarise_all
将函数应用于所有列
library(dplyr)
mtcars %>%
group_by(cyl) %>%
summarise_all(mean, na.rm = TRUE)