我有一个看起来像这样的列表:x[[state]][[year]]
. 其中的每个元素都是一个数据框,单独访问它们不是问题。
但是,我想跨多个列表 rbind 数据帧。更具体地说,我希望输出与多年来一样多的数据帧,即 rbind 每年内的所有状态数据帧。换句话说,我想将我所有的州数据逐年合并到单独的数据框中。
我知道我可以将单个列表与do.call("rbind",list)
. 但我不知道如何在列表列表中做到这一点。
先把它折叠成一个列表:
list <- unlist(listoflists, recursive = FALSE)
df <- do.call("rbind", list)
您可以按照以下方式做一些事情(我无法测试,因为我没有这样的结构):
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)))
函数提取年份创建一个列表,其中仅包含给定年份的数据框。然后你 rbind 他们...