Domanda

Sto cercando di esportare alcuni valori di output campionati da JAGS in formato .CSV per eseguire ulteriori analisi in R, ma ho ottenuto alcuni problemi.

> 
> 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
È stato utile?

Soluzione

un mcmc.list Puoi contenere più catene, vorresti selezionare la catena che desideri quando scrivi nel file CSV:

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

Dovrei fare la "cosa giusta", anche se al momento non ho una catena con cui testarlo.

Altri suggerimenti

write.table Aspetta una cornice di dati o una matrice (se non lo passi, proverà a costringerlo). Se guardi la struttura di codaSamples con EG str(codaSamples) Vedrai che si tratta di un oggetto di elenco con elementi che sono elenchi o cornici o matrici di dati (non so cosa sia realmente). Se è miscelato in quel modo, write.table Non ha idea di come trasformarlo in un CSV.

Se si desidera selezionare solo la matrice, puoi trovare il nome dell'elemento con names(codaSamples) o di nuovo da str(codaSamples) E poi fai qualcosa di simile sample.mcmc <- codaSamples[['Matrix']] o qualunque sia il nome, allora dovresti essere in grado di salvare sample.mcmc a un file proprio come hai fatto tu.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top