将大量列表强制转换为数据框保持列表 属性
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
我有一个很大的列表,其中包含具有以下属性的 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