【问题标题】:Coerce Large List of Lists to Data Frame Keeping List Property将列表的大列表强制为数据框保留列表属性
【发布时间】:2023-03-23 20:50:01
【问题描述】:

我有一个很大的列表,其中包含具有以下属性的 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

非常感谢您的帮助。

`

【问题讨论】:

  • 请说明您是如何遇到您要解决的问题的,以及阻碍您自己解决的任何困难。
  • 那里没有任何嵌套列表。您正在使用三个原子向量。让我们得到所需结果的dput()。不确定最终结果应该是什么,但as.data.frame(list) 应该没问题(但名字很难看)。

标签: r list dataframe data-processing


【解决方案1】:

只需将您的向量列表行绑定在一起(假设您只有向量作为上级列表的元素)

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

【讨论】:

  • 谢谢,但这会产生矩阵而不是数据框。
  • 改成data.frame就行了
【解决方案2】:
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 &lt;- 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-20
    • 1970-01-01
    • 2021-02-09
    相关资源
    最近更新 更多