【问题标题】:Add together n-dimensions in a three dimensional array in R将R中的三维数组中的n维加在一起
【发布时间】: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:一个非常尴尬的错字。

【问题讨论】:

  • 尝试使用 rowSumscolSums 。所以使用下面的数据。 rowSums(my.array, dims=2)

标签: arrays r function sum addition


【解决方案1】:

看起来像你想要的那样:

# 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)

希望这会有所帮助!

【讨论】:

  • 谢谢!它完美地做到了。这也证明了,我还有很多阅读要做:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-02
  • 2015-11-17
  • 1970-01-01
相关资源
最近更新 更多