R - 扩展多维数组

时间:2014-03-26 13:10:43

标签: r

我有一个多维数组S:

> dim(S)
[1] 45 81  3 52

我想在第三维中添加一列,以便:

> dim(S)
[1] 45 81  **4** 52

并保留S中的所有当前数据。

2 个答案:

答案 0 :(得分:13)

以下是R的一个潜在基础[<-解决方案。

S.new <- array(NA, dim=c(45, 81, 4, 52))
S.new[,,-4,] <- S                 # re-insert on all but the added extent

基本上,您只需重新插入新数组,但可以指定旧数组中存在的维度。


我们可以用小玩具示例来测试它是否有效::

arr <- array(rep(1:4, each=4), dim=c(2, 2, 2, 2))     # toy array
arr.new <- array(NA, dim=c(2, 2, 3, 2))               # increased dimension 3

然后一个简单的步骤:

arr.new[,,-3,] <- arr

答案 1 :(得分:1)

如果您加载abind包,则可以访问

empty <- array(0, dim=c(45,81,52))
S <- abind(S,empty, along=3)