将大量列表强制转换为数据框保持列表 属性

Coerce Large List of Lists to Data Frame Keeping List Property

我有一个很大的列表,其中包含具有以下属性的 ID

list1 <- c(145540,145560, 157247, 145566)
list2 <- c(166927, NA, NA, NA)
list3 <- c(145592, 145560, 145566, NA)
list <- list(list1, list2, list3)

现在我想将这个大列表强制转换为 data.frame,同时保留嵌套列表的列表属性。所需的输出应如下所示:

list1 list2 list3
145540 166927 145592
145560 NA 145560
157247 NA 145566
145566 NA NA

非常感谢您的帮助。

`

只需将您的向量列表行绑定在一起(假设您只有向量作为上层列表的元素)

as.data.frame(sapply(list, rbind))
     V1   V2   V3
1 145540 166927 145592
2 145560     NA 145560
3 157247     NA 145566
4 145566     NA     NA
do.call(cbind.data.frame,list)
  c(145540, 145560, 157247, 145566) c(166927, NA, NA, NA)
1                            145540                166927
2                            145560                    NA
3                            157247                    NA
4                            145566                    NA
  c(145592, 145560, 145566, NA)
1                        145592
2                        145560
3                        145566
4                            NA
> Reduce(cbind.data.frame,list)
    init x[[i]] x[[i]]
1 145540 166927 145592
2 145560     NA 145560
3 157247     NA 145566
4 145566     NA     NA
> Reduce(cbind,list)
       init              
[1,] 145540 166927 145592
[2,] 145560     NA 145560
[3,] 157247     NA 145566
[4,] 145566     NA     NA

然后就可以设置名称了。

尽管另一方面,如果名称是预设的,即 list <- list(list1=list1, list2=list2, list3=list3) 那么

do.call(cbind.data.frame,list)

   list1  list2  list3
1 145540 166927 145592
2 145560     NA 145560
3 157247     NA 145566
4 145566     NA     NA