如何在 R 中绑定子列表
How to rbind sublists in 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
对应的base R解:
do.call(rbind, lapply(datalistpairs[[1]], `[[`, 1))
编辑: 如何应用到 datalistpairs[[i]]
where i = 1, 2, 3, ..., n
lapply(1:n, function(i){
do.call(rbind, lapply(datalistpairs[[i]], `[[`, 1))
})
我有一个数据帧列表列表。我正在尝试做的事情可以描述如下:
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
对应的base R解:
do.call(rbind, lapply(datalistpairs[[1]], `[[`, 1))
编辑: 如何应用到 datalistpairs[[i]]
where i = 1, 2, 3, ..., n
lapply(1:n, function(i){
do.call(rbind, lapply(datalistpairs[[i]], `[[`, 1))
})