Вопрос

У меня есть список списков, который выглядит следующим образом: 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)
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top