rbind列表中的数据帧

时间:2009-10-30 21:51:13

标签: list r dataframe

我有一个列表如下:x[[state]][[year]]。这个元素的每个元素都是一个数据框,单独访问它们不是问题。

但是,我想在多个列表中绑定数据帧。更具体地说,我想拥有与我多年一样多的数据帧输出,即每年所有状态数据帧的rbind。换句话说,我想将我所有的状态数据逐年合并到不同的数据框中。

我知道我可以将单个列表合并到do.call("rbind",list)的数据框中。但是我不知道如何在列表列表中这样做。

2 个答案:

答案 0 :(得分:38)

首先将其折叠到列表中:

list <- unlist(listoflists, recursive = FALSE)
df <- do.call("rbind", list)

答案 1 :(得分:9)

你可以沿着以下几行做某事(我无法测试,因为我没有这样的结构):

extract.year <- function(my.year) lapply(x, function(y) y[[my.year]])

x.by.year <- sapply(my.list.of.years, function(my.year)
    do.call(rbind, extract.year(my.year)))   

函数抽取年创建一个仅包含给定年份的数据框的列表。然后你回复他们......