在R中的三维数组中将n维加在一起

Add together n-dimensions in a three dimensional array in R

大家好!我有一个非常直接的问题。我有一个名为 w 的三维数组,如下所示:

> w
, , 1

     [,1] [,2] [,3]
[1,]  0.5  0.5  0.5
[2,]  0.5  0.5  0.5

, , 2

     [,1] [,2] [,3]
[1,]  0.1  0.1  1.0
[2,]  0.5  0.5  0.5

现在,它只是一个表示,所以这不是实际数据。

问题是我把三维的元素加在一起,比如w[1, 1, 1] + w[1, 1, 2] + w[1, 1, 3],但我不知道三维会有多少成员。我不能在 for 循环中执行此操作,因为它已经在嵌套的 for 循环中(两个 for 循环)。

所以,我基本上要加在一起[=13​​=]

我试过

for (k in 1:dims(w)[3]) # it is one of the for loops
lapply(w[, , k], '+') 

但它只打印 w[, , 1],仅此而已。

在 C++ 中,我想你会简单地写 y += w[ , n]。

我真的很感激关于我应该如何处理这个问题或解决方案的一些想法:)。

*编辑:一个非常尴尬的错字。

看起来这符合您的要求:

# sample data
w<-array(sample(1:4),dim=c(3,3,3))

# sum over dimensions 1 and 2
apply(w, MARGIN=c(1, 2), sum)

希望对您有所帮助!