【发布时间】:2017-07-12 21:56:24
【问题描述】:
使用内置数据框 mtcars,假设我想根据“carb”列中的值计算每列的平均值。我该怎么做?
【问题讨论】:
-
有用,但这篇文章平均只有 1 列。多列怎么办?
使用内置数据框 mtcars,假设我想根据“carb”列中的值计算每列的平均值。我该怎么做?
【问题讨论】:
您正在寻找aggregate 函数。很好地解释了in this previous post。
对于mtcars,对于所有其他列,这将如下所示:
aggregate(. ~ carb, mtcars, mean)
carb mpg cyl disp hp drat wt qsec vs am gear
1 1 25.34286 4.571429 134.2714 86.0 3.681429 2.4900 19.50714 1.0 0.5714286 3.571429
2 2 22.40000 5.600000 208.1600 117.2 3.699000 2.8628 18.18600 0.5 0.4000000 3.800000
3 3 16.30000 8.000000 275.8000 180.0 3.070000 3.8600 17.66667 0.0 0.0000000 3.000000
4 4 15.79000 7.200000 308.8200 187.0 3.596000 3.8974 16.96500 0.2 0.3000000 3.600000
5 6 19.70000 6.000000 145.0000 175.0 3.620000 2.7700 15.50000 0.0 1.0000000 5.000000
6 8 15.00000 8.000000 301.0000 335.0 3.540000 3.5700 14.60000 0.0 1.0000000 5.000000
或者像这样只对特定列进行一次(例如mpg):
> aggregate(mpg ~ carb, mtcars, mean)
carb mpg
1 1 25.34286
2 2 22.40000
3 3 16.30000
4 4 15.79000
5 6 19.70000
6 8 15.00000
编辑:总和与平均值混为一谈,抱歉。更正它的意思。
【讨论】: