Question

J'essaie d'exporter certaines valeurs de sortie échantillonnées de JAGS au format .csv afin d'effectuer une analyse plus approfondie en R, mais j'ai eu quelques problèmes.

> 
> codaSamples
[[1]]
Markov Chain Monte Carlo (MCMC) output:
Start = 4001 
End = 14000 
Thinning interval = 1 
           pai     theta[1]     theta[2]   theta[3]   theta[4]
[1,] 0.9774972 0.0081192689 0.0101738296 0.06981109 0.10674466
[2,] 0.9527935 0.0076402088 0.0099482287 0.07593964 0.11060883
[3,] 0.9467507 0.0076402088 0.0099482287 0.07593964 0.11060883
[4,] 0.9514251 0.0076402088 0.0099482287 0.07593964 0.11060883
[5,] 0.9419245 0.0076402088 0.0099482287 0.07593964 0.11060883
[6,] 0.9914296 0.0076402088 0.0099482287 0.07593964 0.11060883
[7,] 0.9903451 0.0076402088 0.0099482287 0.07593964 0.11060883
[8,] 0.9917113 0.0064704730 0.0095551321 0.06748512 0.11033123
...
... 

[10000,] 0.9917113 0.0064704730 0.0095551321 0.06748512 0.11033123

> write.csv(codaSamples,"CODASAMPLES.csv",row.names=FALSE)
Error in as.data.frame.default(x[[i]], optional = TRUE, stringsAsFactors =       stringsAsFactors) : 
cannot coerce class '"mcmc.list"' into a data.frame
Était-ce utile?

La solution

un mcmc.list Peut contenir plusieurs chaînes, vous souhaitez sélectionner la chaîne souhaitée lorsque vous écrivez dans le fichier CSV:

write.csv(codaSamples[[1]], "CODASAMPLES.csv",row.names=FALSE)

Devrait faire la "bonne chose", bien que je n'ai pas de chaîne pour tester cela en ce moment.

Autres conseils

write.table Attend une trame de données ou une matrice (si vous ne la passez pas, elle essaiera de les contraindre). Si vous regardez la structure de codaSamples avec par exemple str(codaSamples) Vous verrez qu'il s'agit d'un objet de liste avec des éléments qui sont des listes ou des cadres de données ou des matrices (je ne sais pas ce que c'est réellement). Si c'est mélangé comme ça, write.table Je ne sais pas comment le transformer en CSV.

Si vous souhaitez sélectionner uniquement la matrice, vous pouvez trouver le nom de l'élément avec names(codaSamples) ou encore de str(codaSamples) Et puis faites quelque chose comme sample.mcmc <- codaSamples[['Matrix']] ou quel que soit le nom, alors vous devriez pouvoir enregistrer sample.mcmc à un fichier comme vous l'avez.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top