【发布时间】:2017-07-17 10:30:37
【问题描述】:
大家!我有一个非常直接的问题。我有一个名为 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 循环)。
所以,我基本上要加在一起w[, , 1] + w[, , 2] + w[, , 3]....
我尝试了类似的东西
for (k in 1:dims(w)[3]) # it is one of the for loops
lapply(w[, , k], '+')
但它只打印w[, , 1],仅此而已。
在 c++ 中,我认为你可以简单地写成 y += w[, , n]。
我真的很感激关于我应该如何处理这个问题或解决方案的一些想法:)。
*edit:一个非常尴尬的错字。
【问题讨论】:
-
尝试使用
rowSums和colSums。所以使用下面的数据。rowSums(my.array, dims=2)
标签: arrays r function sum addition