我有一个包含以下属性的完整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
非常感谢你的帮助。
`
答案 0 :(得分:0)
将你的向量列表拼凑在一起(假设你只有向量作为上层列表的元素)
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
答案 1 :(得分:0)
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