gpt4 book ai didi

r - 嵌套列表 : Ordering it into a dataframe

转载 作者:行者123 更新时间:2023-12-04 12:05:38 24 4
gpt4 key购买 nike

我有一个嵌套列表列表。每个嵌套列表的长度不同。列表中的每个值都分配了一个名称。我想从列表中创建一个数据框,但要对列表进行排序,以便每个值都位于数据框中的正确列中。

用英文很难解释,希望这个示例代码能解释一下:

list <- list(1,1:2,1:3)
names(list[[1]]) <- "a"
names(list[[2]]) <- c("c", "a")
names(list[[3]]) <- c("a","c","b")

table <- matrix(NA, nrow = 3, ncol = 3)
colnames(table) <- c("a","b","c")

> list
[[1]]
a
1

[[2]]
c a
1 2

[[3]]
a c b
1 2 3

> table
a b c
[1,] NA NA NA
[2,] NA NA NA
[3,] NA NA NA

我想像这样将列表排序到表中:

>table
a b c
list[[1]] 1 NA NA
list[[2]] 2 NA 1
list[[3]] 1 3 2

以便列表中值的名称与表中列的名称相匹配,list[[1]] 转到第 1 行,list[[2] ] 转到第 2 行等。

如有任何帮助,我们将不胜感激。

(附加信息:

我的实际数据集有数万个嵌套列表,最长的列表长度为26。

我在 Windows 10 上运行 32 位 R 3.2.4)

最佳答案

我们可以尝试 gtools 包中的 smartbind() 结合 do.call()

library('gtools')
do.call("smartbind", list)
# a c b
#1 1 NA NA
#2 2 1 NA
#3 1 2 3

关于r - 嵌套列表 : Ordering it into a dataframe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36412044/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com