繁体   English   中英

如何将数据框的嵌套列表的列表转换为数据框?

[英]How to convert a list of nested lists of dataframes into a dataframe?

我有一个带有嵌套数据框列表的列表。 我的数据结构如下:

在此处输入图片说明

如何将嵌套列表的所有数据框合并为一个数据框? 在此示例中,我希望将4个数据帧合并(rbind)为一个! 对于此示例,认为初始列表的长度为3而不是58。

先感谢您!

首先,在bind_rowsbind_rows内部循环,然后使用map_dfr绑定较高元素的行,即将0和18绑定在一起。

library(purrr)
lst=list(`0`=list(`1`=iris[1:5,]),`18`=c(`1`=list(iris[1:5,]),`2`=list(iris[1:5,])))
map_dfr(ls,~bind_rows(.,.id='id'))
#OR
bind_rows(unlist(lst,recursive = FALSE),.id = 'id')

另一个更保存的选项是使用unlistpurrr::imap产生代表每个数据帧完整路径的列ID

imap_dfr(unlist(lst,recursive = FALSE), ~data.frame(id=.y, .x, stringsAsFactors = FALSE))

     id Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1   0.1          5.1         3.5          1.4         0.2  setosa
2   0.1          4.9         3.0          1.4         0.2  setosa
3   0.1          4.7         3.2          1.3         0.2  setosa
4   0.1          4.6         3.1          1.5         0.2  setosa
5   0.1          5.0         3.6          1.4         0.2  setosa
6  18.1          5.1         3.5          1.4         0.2  setosa
7  18.1          4.9         3.0          1.4         0.2  setosa
8  18.1          4.7         3.2          1.3         0.2  setosa
9  18.1          4.6         3.1          1.5         0.2  setosa
10 18.1          5.0         3.6          1.4         0.2  setosa
11 18.2          5.1         3.5          1.4         0.2  setosa
12 18.2          4.9         3.0          1.4         0.2  setosa
13 18.2          4.7         3.2          1.3         0.2  setosa
14 18.2          4.6         3.1          1.5         0.2  setosa
15 18.2          5.0         3.6          1.4         0.2  setosa

暂无
暂无

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

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