【发布时间】:2019-09-20 00:08:25
【问题描述】:
在R中,如何将矩阵不同边距上累积和的计算推广到多维数组?
例如,给定矩阵
a2 <- array(1:6, dim = c(2,3))
[,1] [,2] [,3] [1,] 1 3 5 [2,] 2 4 6
可以使用apply计算不同边距上的累积和:
apply(a2, 2, cumsum)
[,1] [,2] [,3] [1,] 1 3 5 [2,] 3 7 11
t(apply(a2, 1, cumsum))
[,1] [,2] [,3] [1,] 1 4 9 [2,] 2 6 12
请注意,在后一种情况下需要进行一些重塑。现在的问题是:
如何计算多维数组的累积和?
例如,对于像这样的三维数组:
a3 <- array(1:24, dim = c(2,3,4))
我对行、列和第三维的累积和感兴趣,保留原始数组的结构。具体来说,行累计和应该是:
, , 1 [,1] [,2] [,3] [1,] 1 4 9 [2,] 2 6 12 , , 2 [,1] [,2] [,3] [1,] 7 16 27 [2,] 8 18 30 , , 3 [,1] [,2] [,3] [1,] 13 28 45 [2,] 14 30 48 , , 4 [,1] [,2] [,3] [1,] 19 40 63 [2,] 20 42 66
n 维数组的答案是什么?
【问题讨论】: