2013-04-24 53 views
1

我对R使用GillespieSSA软件包,我正在运行它10次运行。代码如下:R:GillespieSSA绘制所有游程

library(GillespieSSA) 
init <- c(S=199, I=1) 
a <- c("0.03*{S}*{I}","1*{I}") 
nu <- matrix(c(-1, +1, +1, -1),nrow=2,byrow=T) 
out <- lapply(X=1:10,FUN=function(x) ssa(init, a, nu, tf=10)$data) 
plot(out[[3]][,3],type="l",xlab="Time",ylab="I(t)") 

我的问题是,我可以绘制一个特定的运行,说第三次运行时,出[3]给出了数据的第三次运行,但是我想绘制所有运行了解每次运行的频率。我不知道如何编写代码。我被困了几个星期,在R程序方面我非常虚弱。

+0

“频率”是什么意思?你的意思是“平均”? – csgillespie 2013-04-24 11:06:25

+0

对不起,我想我刚才问错了。我的问题是在10次运行中,我如何绘制第二个元素的每个值的频率,这是我在这个模型中的频率。应绘制图表,其中x轴为I,y轴为频率。有没有绘制它的方法? – 1014 2013-04-24 11:25:30

+0

你想在特定时间点发行'I'吗? – csgillespie 2013-04-24 11:29:09

回答

0

如果您只是想绘制所有运行的频率,请问您在找什么?

par(mfrow=c(4,3)) 

for (i in seq_along(out)){ 
    hist(out[[i]][,3],xlab="I(t)", main=paste("Run ", i)) 
} 
+0

我不认为这是正确的。 OP在X轴上想要'I',而不是时间。 – csgillespie 2013-04-24 11:43:16

+0

如果频率是需要的,为什么不直接绘制出[out] [[i]] [,3]'的直方图?我不明白OP的评论中“第二个元素的每个值的频率”。不是第二个元素'S'而不是'I'? – user1981275 2013-04-24 11:46:21

+0

谢谢。它确实显示了所有的运行。另一个我感到奇怪的问题是[[]] [,3]给出了第二个元素的运行,而不是[[i]] [,2]。这是正确的,因为当我绘制[[i]] [,2]时,它会给出第一个元素的结果。 – 1014 2013-04-24 11:56:17