Associare i frame di dati in un elenco di elenchi
Domanda
Ho un elenco di elenchi simile al seguente: x [[state]] [[year]]
. Ogni elemento di questo è un frame di dati e accedervi singolarmente non è un problema.
Tuttavia, vorrei associare i frame di dati a più elenchi. Più in particolare, mi piacerebbe avere l'output di tutti i frame di dati che ho negli anni, vale a dire unire tutti i frame di dati di stato all'interno di ogni anno. In altre parole, vorrei combinare tutti i miei dati di stato, anno per anno, in frame di dati separati.
So che posso combinare una singola lista in un frame di dati con do.call (" rbind ", list)
. Ma non so come posso farlo attraverso gli elenchi di elenchi.
Soluzione
Puoi fare qualcosa seguendo le seguenti linee (non ho potuto testare in quanto non ho tale struttura):
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)))
L'anno di estrazione della funzione crea un elenco contenente solo i frame di dati per l'anno dato. Quindi li rileghi ...
Altri suggerimenti
Comprimilo prima in un elenco:
list <- unlist(listoflists, recursive = FALSE)
df <- do.call("rbind", list)