a mcmc.list
複数のチェーンを含めることができます。CSVファイルに書き込むときに、必要なチェーンを選択する必要があります。
write.csv(codaSamples[[1]], "CODASAMPLES.csv",row.names=FALSE)
「正しいこと」をするべきですが、現時点ではこれをテストするチェーンはありません。
質問
Rでさらなる分析を実行するために、いくつかのサンプリングされた出力値を.CSV形式にエクスポートしようとしていますが、いくつかの問題が発生しました。
>
> 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
解決
a mcmc.list
複数のチェーンを含めることができます。CSVファイルに書き込むときに、必要なチェーンを選択する必要があります。
write.csv(codaSamples[[1]], "CODASAMPLES.csv",row.names=FALSE)
「正しいこと」をするべきですが、現時点ではこれをテストするチェーンはありません。
他のヒント
write.table
データフレームまたはマトリックスを期待します(それを渡さない場合、それを強制しようとします)。の構造を見ると codaSamples
例えば str(codaSamples)
リストまたはデータフレームまたはマトリックスである要素を備えたリストオブジェクトであることがわかります(実際に何であるかはわかりません)。そのように混ざっている場合、 write.table
それをCSVに変える方法がわかりません。
マトリックスのみを選択する場合は、要素の名前を見つけることができます names(codaSamples)
または再び str(codaSamples)
そして、ようなことをします sample.mcmc <- codaSamples[['Matrix']]
または名前が何であれ、あなたは保存できるはずです sample.mcmc
あなたが持っているようにファイルに。