2013-04-24 58 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