我有一個列表的列表,我想將它轉換成矩陣,使每列=一個子列表。列表到矩陣
莫克例如
list1 <- list(1, 2)
list2 <- list(1, 2, 3)
list3 <- list(1, 2, 3, 4)
list_lists <- list (list1, list2, list3)
我第一egalizing所有子列表的長度(填充有如果需要空值),以使所有子列表具有最長的一個的長度。這是爲了避免讓R重複數據填充最終矩陣中的行(如果我可以跳過此步驟,請隨意)。
max_length <- max(unlist(lapply (list_lists, FUN = length)))
list_lists <- lapply (list_lists, function (x) {length (x) <- max_length; return (x)})
我最好的嘗試到目前爲止
mat <- lapply (list_lists, cbind)
mat
不看表面像什麼,我想,但實際上並非如此。這不是一個矩陣(並試圖將它轉換成一個使用as.matrix
是不成功的),我不能像列表/矩陣一樣引用列/行。
我期待
[,1] [,2] [,3]
[1,] 1 1 1
[2,] 2 2 2
[3,] NULL 3 3
[4,] NULL NULL 4
什麼是怪我是
mat <- cbind (list_lists[[1]], list_lists[[2]], list_lists[[3]])
似乎工作。我敢打賭,這兩條線是相同的,他們怎麼會有所不同?