运行 rmh 产生错误时尝试保存中间状态

Attempting to save intermediate states when running rmh yields error

我正在尝试模拟多类型点过程,在 rmhcontrol 中每 1000 步保存一次中间状态。但是,每当我指定 nsave 时,我都无法模拟。例如,每当我 运行 下面的代码块时,我都会收到错误消息:

Error in factor(Cmprop, levels = Ctypes) : object 'Cmprop' not found

密码是:

library(spatstat)
library(optimbase)
num_marks <- length(unique(marks(amacrine)))
iradii <- .1*ones(nrow=num_marks,ncol=num_marks)
MSH1 <- MultiStraussHard(iradii=iradii)
x <- ppm(amacrine, trend =~polynom(x,y,3), interaction=MSH1)
control <- rmhcontrol(nsave=1e3)
rmh(x,control=control)

感谢您的帮助!

这是 spatstat 版本 1.62-11.62-2 中的错误。

目前的开发版本1.62-2.006已经修复,您可以从the GitHub repository for spatstat下载。 CRAN 上的下一个 public 版本将在 2020 年 1 月底发布。

请注意:原始问题中的代码会产生错误,因为 ones 具有形式参数 nx, ny 而不是 nrow, ncol。下面的代码测试了这个错误:

library(spatstat)
nm <- length(levels(marks(amacrine)))
ir <- matrix(0.1, nm, nm)
MSH1 <- MultiStraussHard(iradii=ir)
fit <- ppm(amacrine ~ polynom(x,y,3), MSH1)
rmh(fit, nsave=1e3, verbose=FALSE)