2013-07-15 3 views
0

j'ai une boucle qui stocke dans une liste d'une date et une valeur après quelques calculs. Je voudrais créer un tableau à deux colonnes (date, valeur), mais quand j'extraire les valeurs de la liste, je ne peux pas conserver le format de date:le format conserver lors de l'extraction de la liste dans R

n <- 5 

x <- factor(1:3,levels=1:3,labels=c('a','b','c')) 
dates <- as.Date(c('2000-01-01','2001-01-01','2002-01-01')) 

mylist <- list() 

for (i in 1:n) { 

    #Some operations 

    mylist[[i]] <- list(sample(dates,1),as.numeric(sample(x,1))) 

} 

z <- do.call(cbind,mylist) 

Répondre

0

Vous devez changer la structure de données qui peut effectivement contenir différents types de données (par exemple une trame de données), puis rbind-les ensemble:

for (i in 1:n) { 

    #Some operations 

    mylist[[i]] <- data.frame(sample(dates,1),as.numeric(sample(x,1))) 

} 

z <- do.call(rbind,mylist) 

le problème dans votre code est que l'opération cbind sous la contrainte du list à un matrix (ce qui est le comportement par défaut de rbind/cbind) qui ne peut contenir que o Type de données.

+0

merci je bien un 'list'could gérer différents types de données et – nopeva

+0

Oui, mais le problème se produit lorsque vous COERCE via' cbind'. Cela le transforme en une «matrice». Voyez ce que votre 'mylist' est et ce que le' do.call' fait à lui. – Henrik

Questions connexes