沿着维度3对3D数组求和(从而产生矩阵)的规范方法是什么?
我知道我可以apply(A,c(1,2),sum)但是(错误地或正确地)我从某个地方得到的印象是使用apply并不比使用for循环更好.
我可能是aperm数组,colSum然后aperm再次取消它,但那不是很可读.
有没有更好的办法?
Rol*_*and 13
使用rowSums.它提供了一个dims参数,指定"[w]哪个维度被视为'行'或'列'以求和.对于行*,总和或均值超过维度dims + 1".
a <- array(1:16, c(2, 2, 2))
#, , 1
#
# [,1] [,2]
#[1,] 1 3
#[2,] 2 4
#
#, , 2
#
# [,1] [,2]
#[1,] 5 7
#[2,] 6 8
rowSums(a, dims = 2)
# [,1] [,2]
#[1,] 6 10
#[2,] 8 12
Run Code Online (Sandbox Code Playgroud)