2014-03-26 41 views
2

我有一個多維數組S:的R - 擴展多維數組

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

我想在第三維添加一個列有:

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

和保存所有的S中的當前數據在哪裏。

回答

6

這是一個潛在的基地R(大概S如果你沒有真正的意思的S語言,而不是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

如果在abind加載包,您有權訪問

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