Question

J'ai une liste de listes qui ressemble à ceci: x [[état]] [[année]] . Chaque élément de ceci est un cadre de données, et y accéder individuellement ne pose pas de problème.

Toutefois, j'aimerais regrouper des trames de données sur plusieurs listes. Plus précisément, j'aimerais avoir autant de sorties de données que de années en sortie, c'est-à-dire que toutes les trames de données d'état doivent être réunies au cours de chaque année. En d'autres termes, j'aimerais combiner toutes mes données d'état, année par année, dans des trames de données distinctes.

Je sais que je peux combiner une liste unique dans un bloc de données avec do.call ("liste", liste) . Mais je ne sais pas comment je peux le faire d’une liste à l’autre.

Était-ce utile?

La solution

Vous pouvez faire quelque chose dans le sens suivant (je ne pouvais pas tester car je n'ai pas cette structure):

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

La fonction extract year crée une liste contenant uniquement les images pour l’année donnée. Ensuite, vous les reliez ...

Autres conseils

Réduisez-le d'abord dans une liste:

list <- unlist(listoflists, recursive = FALSE)
df <- do.call("rbind", list)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top