如何沿第三维求和数组

Mus*_*ful 7 r

沿着维度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)