我有一个多维数组S:
> dim(S)
[1] 45 81 3 52
我想在第三维中添加一列,以便:
> dim(S)
[1] 45 81 **4** 52
并保留S中的所有当前数据。
答案 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)