我有一个lapply函数,它遍历一个元素列表。对于每个元素,结果是一个矩阵。根据元素列表和矩阵列表,我想返回一个表格的数据框列表
element1, matrix1
element2, matrix2
...
...
elementn, matrixn
示例:
e <- list(1,2)
r <- lapply(e, function(x) matrix(ncol = x, nrow = x))
我想获得一个包含这些元素的列表
(1, matrix(1x1))
(2, matrix(2x2))
答案 0 :(得分:1)
您可以在lapply
函数中构造数据框,其中I(list(...))
可以将矩阵包装为数据框中的一个元素:
r <- lapply(e, function(x) data.frame(element = x, mat = I(list(matrix(ncol = x, nrow = x)))))
这给出了一个数据框列表:
r
# [[1]]
# element mat
# 1 1 NA
# [[2]]
# element mat
# 1 2 NA, NA, ....
您可以将结果与do.call(rbind, ...)
:
do.call(rbind, r)
# element mat
# 1 1 NA
# 2 2 NA, NA, ....