我有一个列表的列表,我想将它转换成矩阵,使每列=一个子列表。列表到矩阵
莫克例如
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]])
似乎工作。我敢打赌,这两条线是相同的,他们怎么会有所不同?