【问题标题】:R2WinBUGS - how to reload the WinBUGS computation results to bugs object againR2WinBUGS - 如何再次将 WinBUGS 计算结果重新加载到错误对象
【发布时间】:2011-11-11 13:00:46
【问题描述】:

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

bugs.object <- bugs(...)

但是 R 崩溃了。 如何在不再次运行 winbugs 的情况下再次将 bugs.object 重新加载到 R 中?我试过这个(我有 3 个链):

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

out 数据结构与错误对象完全不同(因为它是不可用的)。我尝试用as.bugs.array转换它:

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

但它不起作用。请帮忙。谢谢。

【问题讨论】:

  • 首先查看str(out)class(out)(您可以发布结果,尽管str(out) 可能会提供大量输出)。正如?read.bugs 所指定的,您应该得到一个mcmc.list 类的对象,然后可以使用coda 函数对其进行分析...?

标签: r winbugs r2winbugs winbugs14


【解决方案1】:

您可能正在阅读一条错误消息,其中 R 内存不足,无法创建 bugs.array 对象。

您可以通过在bugs 函数中设置codaPkg=T 语句来解决这个问题。这会将 CODA 文件保存在您指定的工作目录中,而不是创建 R2WinBUGS 对象(在 R 崩溃之前)。然后你可以使用 coda 包中的read.mcmc 读回 coda 文件,如果你真的想要,将mcmc 对象转换为bugs.array

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

【讨论】:

    猜你喜欢
    • 2013-01-08
    • 2013-06-01
    • 2020-07-04
    • 1970-01-01
    • 1970-01-01
    • 2015-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多