首页 > 解决方案 > 如何将元素添加到 3d 数组?

问题描述

我正在尝试将元素添加到多维数组中,我不知道声明它的长度,但它的行为不像我预期的那样。我已经看到 r 中的数组不是静态的,并且我尝试了很多不同的方法,所以我开始有点生气了。

我有数组:

diffAr <- array(0,dim = c(1,2))

我设置为循环的一部分:

diffAr[t,] <- c(cordX,cordY)

效果很好

> diffAr
     [,1] [,2]
[1,]    2    1

第一次运行正常,但第二次出现此错误:

'[<-'(' tmp ', 2, , value = c(3, 5)) 中的错误:下标越界

如果 r 中的数组是动态的,这不应该工作吗,只需添加另一个元素?

标签: r

解决方案


如果要向数组添加行,可以使用 rbind(),如果要添加列,可以使用 cbind()。在这种情况下,可以像这样添加第二行,值为 3 和 5(这也适用于您的循环):

diffAr <- array(0,dim = c(1,2))
diffAr[1,] <- c(2,1)

diffAr <- rbind(diffAr, c(3,5))
diffAr


> diffAr
     [,1] [,2]
[1,]    2    1
[2,]    3    5

推荐阅读