我有一个未命名列表的列表,我需要将其转换为可用的 data.frame。大多数情况下,列表中的每个列表都具有相同的元素名称,但有些列表会包含一些元素,而其他列表则不会。因此,每个列表应该是我的 data.frame 中的一行,每个变量名称应该是一列,如果列表没有特定变量,则 data.frame 应包含 NA 元素。
在我的示例中, this_list 是我正在使用的内容, this_df 是我想要的内容。我尝试了各种方法来取消列出并转换为 data.frame,但我的列名称变得重复,并且我只得到 1 个观察结果。谢谢。
this_list <- list(list(
Name = "One",
A = 2,
B = 3,
C = 4,
D = 5
),
list(
Name = "Two",
A = 5,
B = 2,
C = 1
))
this_df <- data.frame(Name=c("One","Two"),
A=c(2,5),
B=c(3,2),
C=c(4,1),
D=c(5,NA))
Run Code Online (Sandbox Code Playgroud)
您可以rbindlist使用data.table:
library(data.table)
that_df <- as.data.frame(rbindlist(this_list, fill = TRUE))
# the result
Name A B C D
1: One 2 3 4 5
2: Two 5 2 1 NA
Run Code Online (Sandbox Code Playgroud)