【发布时间】:2011-02-27 19:36:33
【问题描述】:
考虑数组a:
> a <- array(c(1:9, 1:9), c(3,3,2))
> a
, , 1
[,1] [,2] [,3]
[1,] 1 4 7
[2,] 2 5 8
[3,] 3 6 9
, , 2
[,1] [,2] [,3]
[1,] 1 4 7
[2,] 2 5 8
[3,] 3 6 9
我们如何有效地计算第三维索引的矩阵的行和,使得结果是:
[,1] [,2]
[1,] 12 12
[2,] 15 15
[3,] 18 18
??
通过colSums() 的'dims' 参数可以轻松实现列总和:
> colSums(a, dims = 1)
但我找不到在数组上使用rowSums() 来实现所需结果的方法,因为它对'dims' 的解释与colSums() 的解释不同。
使用以下方法计算所需的行总和很简单:
> apply(a, 3, rowSums)
[,1] [,2]
[1,] 12 12
[2,] 15 15
[3,] 18 18
但这只是隐藏循环。还有其他有效的、真正矢量化的方法来计算所需的行总和吗?
【问题讨论】: