r - 如何在 R 中绑定子列表
问题描述
我有一个数据框列表的列表。我正在尝试做的事情可以通过以下方式描述:
rbind(datalistpairs[[1]][[1]][[1]],datalistpairs[[1]][[2]][[1]],datalistpairs[[1]][[3]][[1]])
我的子列表有 j 长度,所以实际上我正在尝试类似(j 次):
rbind(datalistpairs[[1]][[1]][[1]],
datalistpairs[[1]][[2]][[1]],
datalistpairs[[1]][[3]][[1]],...,
datalistpairs[[1]][[j]][[1]])
最有效的方法是什么?
具有三个迭代的输出创建了一个如下所示的数据框:
LAT LON
31 43.1818 5.2348
311 43.1818 5.2348
312 43.1818 5.2348
编辑:我提供以下示例数据
datalistpairs = list(list(list(l1 = data.frame(LAT = 1, LON = 2),
l2 = data.frame(LAT = 1, LON = 2)),
list(l1 = data.frame(LAT = 1, LON = 2),
l2 = data.frame(LAT = 1, LON = 2))),
list(list(l1 = data.frame(LAT = 1, LON = 2),
l2 = data.frame(LAT = 1, LON = 2)),
list(l1 = data.frame(LAT = 1, LON = 2),
l2 = data.frame(LAT = 1, LON = 2))))
我的目标是得到:
rbind(datalistpairs[[1]][[1]][[1]],datalistpairs[[1]][[2]][[1]])
希望这可以帮助。
解决方案
用于map()
提取每个子列表的第一个元素。
library(purrr)
datalistpairs[[1]] %>% map_dfr(~ .[[1]])
# LAT LON
# 1 1 2
# 2 1 2
相应的基础 R 解决方案:
do.call(rbind, lapply(datalistpairs[[1]], `[[`, 1))
编辑:如何适用于datalistpairs[[i]]
i = 1, 2, 3, ..., n
lapply(1:n, function(i){
do.call(rbind, lapply(datalistpairs[[i]], `[[`, 1))
})
推荐阅读
- javascript - 如何从 javascript 函数中获取 TikTok 个人资料图片?
- github - 无法对具有默认域的 github 页面强制执行 https
- sql-server - 为什么具有错误谓词的聚合查询会返回结果?有没有办法不得到结果?
- python - 用下一次出现的非 np.nan 值的值填充 np.nan 值
- transactions - Eth,如何从智能合约中调用存款功能
- c++ - 为浮点常量调用伪析构函数的有效语法
- python - 在 Jenkinsfile 管道 groovy 中获取 python 脚本的输出结果
- c# - JsonSerializer.Deserialize 无法推断用法
- python - 如何处理ipywidgets中按钮的可变宽度
- java - 表格布局和表格行问题。将文本设置到 Activity Java 类的行中