【发布时间】:2018-11-12 20:36:35
【问题描述】:
我有一个矩阵,列根据分组变量分组:
x <- matrix(sample(1:10,20,T),ncol=4)
[,1] [,2] [,3] [,4]
[1,] 7 8 5 3
[2,] 7 5 4 7
[3,] 7 1 9 3
[4,] 4 8 8 8
[5,] 9 9 1 5
group <- sample(1:2, 4, TRUE)
[1] 1 2 1 2
计算按列分组变量分组的每一行的平均值的最优雅方法是什么?所示示例的结果应该是 5 x 2 矩阵:
1 2
[1,] 6.0 5.5
[2,] 5.5 6.0
[3,] 8.0 2.0
[4,] 6.0 8.0
[5,] 5.0 7.0
我查看了rowsum 命令,但它通过分组变量对行求和,并且没有现成的选项来计算平均值。
如果有任何帮助,我将不胜感激。
【问题讨论】:
-
但据我所知,该命令不采用分组变量。有没有办法可以为
colSums或colMeans使用分组变量? -
您通常会分组然后应用该功能。这就是为什么我们有这么多
apply函数。通过这种方式,您可以创建更灵活的函数,而不是 one pony trick 类型的函数