6
我試圖將一個三維數組轉換成矩陣。我想要數組的第三維形成矩陣中的第一行,並且這個第三維應該按行讀取(即,第3行的第1行,然後第2行等)應構成第矩陣)。我在下面給出了一個例子,其中數組的維數爲4,3和5,結果矩陣有5行和12列。我有一個解決方案實現了我想要的,但對於大型數組來說,它似乎非常麻煩(它首先從數組元素(按行)創建矢量,然後將這些矢量組合成矩陣)。有沒有更優雅的方式來做到這一點?在此先感謝您的任何建議。將一個三維數組轉換成一個矩陣R
dat <- array(rnorm(60), dim=c(4, 3, 5))
results <- list(1:5)
for (i in 1:5) {
vec <- c(t(dat[, , i]))
results[[i]] <- vec
}
datNew <- rbind(results[[1]], results[[2]], results[[3]], results[[4]], results[[5]])
您應該更改配方。您可能意指數組的「第一個元素」,即陣列打印時打印的矩陣。這些矩陣是數組的_3rd_維的元素。從你的例子中,我發現你只是想扁平化前兩個維度。我的答案在下面給你你想要的。 – VitoshKa 2010-10-26 09:28:25
感謝VitoshKa指出 - 我編輯了這個問題。 – Steve 2010-10-26 09:38:37