rbind фреймы данных в списке списков
Вопрос
У меня есть список списков, который выглядит следующим образом: x [[state]] [[year]]
. Каждый элемент этого представляет собой фрейм данных, и доступ к ним по отдельности не является проблемой. Р>
Однако я хотел бы привязать фреймы данных к нескольким спискам. Точнее говоря, я хотел бы иметь столько выходных данных, сколько у меня есть лет, то есть связать все фреймы данных состояния за каждый год. Другими словами, я хотел бы объединить все свои данные о состоянии, год за годом, в отдельные кадры данных.
Я знаю, что могу объединить один список во фрейм данных с 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)))
Функция извлечения года создает список, содержащий только кадры данных для данного года. Тогда ты их связываешь ...
Другие советы
Сначала сверните его в список:
list <- unlist(listoflists, recursive = FALSE)
df <- do.call("rbind", list)