rbind dataframes в списке списков - PullRequest
       38

rbind dataframes в списке списков

21 голосов
/ 31 октября 2009

У меня есть список списков, который выглядит следующим образом: x[[state]][[year]]. Каждый элемент этого представляет собой фрейм данных, и доступ к ним по отдельности не является проблемой.

Однако я бы хотел привязать фреймы данных к нескольким спискам. Точнее говоря, я хотел бы иметь столько выходных данных, сколько у меня есть лет, то есть связать все фреймы данных состояния за каждый год. Другими словами, я хотел бы объединить все свои данные о состоянии, год за годом, в отдельные фреймы данных.

Я знаю, что могу объединить один список во фрейм данных с do.call("rbind",list). Но я не знаю, как мне это сделать в списках списков.

Ответы [ 2 ]

38 голосов
/ 31 октября 2009

Сначала сверните его в список:

list <- unlist(listoflists, recursive = FALSE)
df <- do.call("rbind", list)
9 голосов
/ 31 октября 2009

Вы можете сделать что-то вроде следующего (я не смог проверить, так как у меня нет такой структуры):

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)))   

Функция извлечения года создает список, содержащий только кадры данных для данного года. Тогда ты их связываешь ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...