2017-10-04 38 views
1

我有一個3D數組的列表,它們的第二維和第三維中具有相同數量的元素,我需要將其轉換爲包含每個列表元素的單個3D數組。如何將三維數組的列表按其第一維進行組合?

作爲可再現的例子:

m1 <- array(seq(1,12*5),c(3,4,5)) 
m2 <- array(seq(100,16*5+100),c(4,4,5)) 
RE <- list(m1, m2) 

然後

> m1[1,,] 
    [,1] [,2] [,3] [,4] [,5] 
[1,] 1 13 25 37 49 
[2,] 4 16 28 40 52 
[3,] 7 19 31 43 55 
[4,] 10 22 34 46 58 

而且

> m2[4,,] 
    [,1] [,2] [,3] [,4] [,5] 
[1,] 103 119 135 151 167 
[2,] 107 123 139 155 171 
[3,] 111 127 143 159 175 
[4,] 115 131 147 163 179 

我需要把它作爲一個單一的3D陣列M,從M[1,,] = m1[1,,]和結尾M[7,,] = m2[4,,]

回答

2

使用abind軟件包中的abind()函數更容易。嘗試

library(abind) 
M <- abind(m1, m2, along=1) 
# or, using the list 
M <- do.call("abind", c(RE, along=1)) 
相關問題