r - 如何将嵌套的数据框列表转换为数据框?
问题描述
我有一个包含嵌套数据框列表的列表。我的数据结构如下:
如何将嵌套列表的所有数据框合并到一个数据框中?在此示例中,我希望将 4 个数据帧合并(rbind)为一个!对于这个例子,认为初始列表的长度是 3 而不是 58。
先感谢您!
解决方案
首先,在 0、18 内循环,bind_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')
另一个更节省的选项是使用unlist
并purrr::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
推荐阅读
- typescript - 遍历对象以获取存储的数组值
- ios - iOS Photos DB Core Data ACHANGE 和 ATRANSACTION 表可以安全地修剪以节省磁盘空间吗?
- javascript - 导入时保留模块的代码拆分
- android-jetpack-compose - 在撰写文本字段上设置最大行数
- node.js - 如何从 NodeJS 文件中正确导出类?
- python - 如何使用请求 python 在网站上填写文本框
- javascript - 如何使用jquery刷新div而不刷新整个站点
- python - PyTorch autograd:自定义函数梯度的维度?
- java - 将String中的所有其他字母转换为大写,只计算字符java
- sql - Sql 查询查找值为 2 的行,这取决于行中另一个值的计数