首页 > 解决方案 > 如何从 R 中的嵌套列表构建数据框

问题描述

我有一个查询数据库并返回两个数据框(df1 和 df2)的列表的函数。如果我在该函数上迭代地应用,我会返回一个包含两个数据框的嵌套列表列表。

结果列表的结构如下:

#e.g. sample list of lists of 2 data frames
A1 <- data.frame(Value =c("A","B","C"))
A2 <- data.frame(Value =c("1","2","3"))
B1 <- data.frame(Value =c("D","E","F"))
B2 <- data.frame(Value =c("4","5","6"))
C1 <- data.frame(Value =c("G","H","I"))
C2 <- data.frame(Value =c("7","8","9"))
myList <- list( list(df1 = A1, df2 = A2),
            list(df1 = B1, df2 = B2),
            list(df1 = C1, df2 = C2))

然后我想将这些数据框组合成它们自己独立的大数据框——df1_All 和 df2_All。

如何从列表中提取所有 df1 数据帧并将它们组合成一个更大的数据帧?我在想这将是使用 do.call(rbind) 构造和应用于 myList 的 apply 或 map 函数?

标签: rlistlapplypurrr

解决方案


根据 Ronak Shah 对我的问题的评论,这是我的回答:

dfX1 <- data.frame(do.call("rbind",lapply(myList,"[[","df1")))
dfX2 <- data.frame(do.call("rbind",lapply(myList,"[[","df2"))) 

推荐阅读