lla*_*fin 3 r function list dataframe
我有一个嵌套列表列表.每个嵌套列表的长度都不同.列表中的每个值都有一个分配给它的名称.我想从列表中创建一个数据框,但是对列表进行排序,以便每个值都在数据框中的正确列中.
用英语解释很难,我希望这个示例代码能够解释:
list <- list(1,1:2,1:3)
names(list[[1]]) <- "a"
names(list[[2]]) <- c("c", "a")
names(list[[3]]) <- c("a","c","b")
table <- matrix(NA, nrow = 3, ncol = 3)
colnames(table) <- c("a","b","c")
> list
[[1]]
a
1
[[2]]
c a
1 2
[[3]]
a c b
1 2 3
> table
a b c
[1,] NA NA NA
[2,] NA NA NA
[3,] NA NA NA
Run Code Online (Sandbox Code Playgroud)
我想将列表排序到表中,如下所示:
>table
a b c
list[[1]] 1 NA NA
list[[2]] 2 NA 1
list[[3]] 1 3 2
Run Code Online (Sandbox Code Playgroud)
以便列表中值的名称与表中列的名称匹配,然后list[[1]]
转到第1行,list[[2]]
转到第2行,等等.
任何帮助,将不胜感激.
(附加信息:
我的实际数据集有数万个嵌套列表,最长列表的长度为26.
我在Windows 10上运行32位R 3.2.4)
我们可以尝试smartbind()
从gtools
包中结合使用do.call()
.
library('gtools')
do.call("smartbind", list)
# a c b
#1 1 NA NA
#2 2 1 NA
#3 1 2 3
Run Code Online (Sandbox Code Playgroud)