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.

È stato utile?

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)
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top