R 如何沿三维方向对数组求和

R 如何沿三维方向对数组求和,r,arrays,aggregate,R,Arrays,Aggregate,沿维度3对3D数组求和(从而生成矩阵)的标准方法是什么 我知道我可以apply(A,c(1,2),sum)但是(错误或正确地)我从某处得到了这样的印象,使用apply并不比使用进行循环好多少 我可能会aperm数组,colSum它,然后再次取消aperm它,但那不是很可读 有更好的方法吗?使用rowSums。它提供了一个dims参数,该参数指定“[w]哪些维度被视为要求和的“行”或“列”。对于行*,求和或平均值大于维度dims+1” a a <- array(1:16, c(2, 2, 2

沿维度3对3D数组求和(从而生成矩阵)的标准方法是什么

我知道我可以
apply(A,c(1,2),sum)
但是(错误或正确地)我从某处得到了这样的印象,使用
apply
并不比使用
进行循环好多少

我可能会
aperm
数组,
colSum
它,然后再次取消
aperm
它,但那不是很可读


有更好的方法吗?

使用
rowSums
。它提供了一个
dims
参数,该参数指定“[w]哪些维度被视为要求和的“行”或“列”。对于行*,求和或平均值大于维度dims+1”

a
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