我正在使用 R 的 GillespieSSA 包,它允许您轻松快速地调用随机模拟的单个实例。但是单一的实现并不是非常有用,我希望能够查看由机会等引起的可变性。考虑一个非常基本的模型:
library(GillespieSSA)
x0 <- c(S=499, I=1, R=0)
a <- c("0.001*{S}*{I}","0.1*{I}")
nu <- matrix(c(-1,0,
+1,-1,
0, +1),nrow=3,byrow=T)
out <- ssa(x0, a, nu, tf=100)
这列出了一个极其复杂的列表,其中有趣的部分位于out$data
.
我的问题是,我可以为实例的一次调用获取 out$data,用一个变量标记它,指示它是什么函数调用,然后将该数据附加到旧数据中,以在结尾。因此,在粗略的伪 R 中,类似于:
nruns <- 10
for (i in 1:nruns){
out <- ssa(x0, a, nu, tf=100)
data <- out$data
run <- rep(i,times=length[data[,2]))
data <- cbind(data,run)
但是在每个时间步都没有覆盖数据。我觉得我已经很接近了,但是本周在几种语言之间跳来跳去,我的 R 循环 fu,虽然它已经很弱,但正在失败。