3

R 内から R2WinBUGS パッケージを使用して、WinBUGS (100 万回の反復) で長い計算を実行しました。

bugs.object <- bugs(...)

しかし、Rはクラッシュしました。winbugs を再度実行せずに bugs.object を R に再ロードするにはどうすればよいですか? 私はこれを試しました(私は3つのチェーンを持っています):

out <- read.bugs(paste("coda", 1:3, ".txt", sep = ""))

しかし、outデータ構造は bugs オブジェクトとはまったく異なります (そのままでは使用できません)。私はそれを変換しようとしましたas.bugs.array:

bugs.object <- as.bugs.array(out, model.file = "ttest.txt", n.iter = 1000000, n.burnin = 300000, n.thin = 2, program = "WinBUGS")

しかし、うまくいきません。助けてください。ありがとう。

4

1 に答える 1

2

オブジェクトを作成するためにRがメモリを使い果たしたというエラーメッセージを読んでいる可能性がありbugs.arrayます。

codaPkg=T関数でステートメントを設定することで、この問題を回避できbugsます。これにより、(Rがクラッシュする前に)R2WinBUGSオブジェクトを作成するのではなく、指定した作業ディレクトリにCODAファイルが保存されます。次に、codaパッケージで使用してcodaファイルを読み戻し、本当に必要な場合は、オブジェクトをread.mcmcに変換します。mcmcbugs.array

MCMCが大きすぎる場合、またはRに十分なメモリがない場合、これは機能しない可能性があります。

于 2012-06-04T12:07:52.370 に答える