3

我使用 R 中的 R2WinBUGS 包在 WinBUGS(百万次迭代)中运行了一个 looong 计算:

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这会将 CODA 文件保存在您指定的工作目录中,而不是创建 R2WinBUGS 对象(在 R 崩溃之前)。然后你可以在 coda 包中读取 coda 文件read.mcmc,如果你真的想要,将mcmc对象转换为bugs.array.

如果您的 MCMC 太大或者您没有足够的内存用于 R,这可能不起作用。

于 2012-06-04T12:07:52.370 回答