Frage

Ich versuche, einige abgetastete Ausgangswerte aus JAGs in das CSV -Format zu exportieren, um weitere Analysen in R durchzuführen, bekam aber einige Probleme.

> 
> 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
War es hilfreich?

Lösung

a mcmc.list Wenn Sie mehrere Ketten enthalten können, möchten Sie beim Schreiben in die CSV -Datei die gewünschte Kette auswählen:

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

Sollte das "Richtige" tun, obwohl ich im Moment keine Kette habe, mit der ich sie testen kann.

Andere Tipps

write.table erwartet einen Datenrahmen oder eine Matrix (wenn Sie ihn nicht übergeben, wird es versuchen, ihn zu zwingen). Wenn Sie sich die Struktur von ansehen codaSamples mit zB str(codaSamples) Sie werden sehen, dass es sich um ein Listenobjekt mit Elementen handelt, die Listen oder Datenrahmen oder Matrizen sind (ich weiß nicht, was es tatsächlich ist). Wenn es so gemischt ist, write.table Hat keine Ahnung, wie man es in ein CSV verwandelt.

Wenn Sie nur die Matrix auswählen möchten, finden Sie den Namen des Elements mit names(codaSamples) oder wieder von str(codaSamples) Und dann so etwas wie sample.mcmc <- codaSamples[['Matrix']] oder wie auch immer der Name ist, dann sollten Sie in der Lage sein, zu speichern sample.mcmc zu einer Datei genauso wie Sie.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top