繁体   English   中英

R中列表的最新数据到data.frame中-变量名称不一致

[英]LIst of lists in R into a data.frame - inconsistent variable names

我有一个列表列表,我想将其转换为数据框。 面临的挑战是列表中缺少变量名称(不是NA,而是变量完全丢失)。

举例说明:从

my_list <- list() 
my_list[[1]] <- list(a = 1, b = 2, c = 3)
my_list[[2]] <- list(a = 4, c = 6)

我想得到

     a  b c
[1,] 1  2 3
[2,] 4 NA 6

另一种选择是

library(reshape2)
as.data.frame(acast(melt(my_list), L1~L2, value.var='value'))
#  a  b c
#1 1  2 3
#2 4 NA 6

或者,正如@大卫Arenburg建议的包装melt/dcast将被recast

recast(my_list, L1 ~ L2, value.var = 'value')[, -1]
#  a  b c
#1 1  2 3
#2 4 NA 6

您可以使用dplyr包中的bind_rows函数:

my_list <- list() 
my_list[[1]] <- list(a = 1, b = 2, c = 3)
my_list[[2]] <- list(a = 4, c = 6)
dplyr::bind_rows(lapply(my_list, as.data.frame))

输出:

Source: local data frame [2 x 3]
  a  b c
1 1  2 3
2 4 NA 6

另一个答案是,这需要将参数的类更改为data.frames:

 library(plyr)
 lista <- list(a=1, b=2, c =3)
 listb <- list(a=4, c=6)
 lista <- as.data.frame(lista)
 listb <- as.data.frame(listb)
 my_list <- list(lista, listb)
 my_list <- do.call(rbind.fill, my_list)
 my_list
   a  b c
 1 1  2 3
 2 4 NA 6

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM