我需要得到一个大型数据集的所有列的平均值,使用R,分组为2个变量。
让我们用mtcars试试:
library(dplyr)
g_mtcars <- group_by(mtcars, cyl, gear)
summarise(g_mtcars, mean (hp))
# Source: local data frame [8 x 3]
# Groups: cyl [?]
#
# cyl gear `mean(hp)`
# <dbl> <dbl> <dbl>
# 1 4 3 97.0000
# 2 4 4 76.0000
# 3 4 5 102.0000
# 4 6 3 107.5000
# 5 6 4 116.5000
# 6 6 5 175.0000
# 7 8 3 194.1667
# 8 8 5 299.5000
它适用于“hp”,但我需要得到mtcars的每隔一列的平均值(除了组成一组的“cyl”和“gear”)。数据集很大,有几列。手工输入,如下所示:summarise(g_mtcars, mean (hp), mean(drat), mean (wt),...)
是不实际的。
6条答案
按热度按时间6kkfgxo01#
Edit2:
dplyr
的最新版本建议使用常规的summarise
和across
函数,如下所示:您要查找的是
dplyr
中的?summarise_all
或?summarise_each
编辑:完整代码:
kyvafyod2#
aggregate
是在base
中执行此操作的最简单方法:snvhrwxg3#
使用data.table.(然而你不能
setDT(mtcars)
因为绑定被锁定.复制它到一个不同的名字象dt并且尝试dl5txlt94#
对于
dplyr 1.1.0
,您可以使用.by
进行内联分组:yjghlzjz5#
您可以在
dplyr::summarize
中使用多个均值语句,如下所示:au9on6nz6#
为了完整起见,您可以使用包
plyr
并执行以下操作: