私は50回、1年間の反復の200回の複製を持つ母集団シミュレーションデータを持っています。私は、同じプロット上で200個の軌跡をすべて線としてプロットしたい(y =人口サイズ、x =年)。次のコード...forループを使用して異なる最大X値を持つ複数の軌跡線をプロット
baseline<-read.csv("C:\\Users\\Chelsea Mitchell\\Desktop\\Poster materials\\chinook baseline raw.csv", header=T)
plot(baseline$time.step..year[1:50],
baseline$pop.size[1:50], type="l", main="baseline model"
, xlab= "Year", ylab= "Population size", ylim= c(0,2e+08))
for (i in 2:(length(baseline$time.step..year)/50))
{lines(baseline$time.step..year[(1+(i-1)*50):(i*50)],
baseline$pop.size[(1+(i-1)*50):(i*50)])}
image of appropriate plot without extinction
このニーズを満たしている。しかし、いくつかのケースでは、人口は絶滅行き、軌道が、私は軌道ラインを停止するループのために言うことができますどのように年間50前に停止次のシミュレーションデータが1年目に再び始まる前に?ここで
image of problem plot with extinction
同じ問題を持つデータとコードの構築、簡易版です。最大年数は10であるため、forループは1:10の「年」シーケンスの軌跡線をプロットします。 pop.sizeが0になると、複製が停止するので、軌跡プロットも停止するはずです。
rep <- c(1,1,1,1,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3)
year <- c(1,2,3,4,1,2,3,4,5,6,1,2,3,4,5,6,7,8,9,10)
pop.size <- c(526,120,165,0,634,637,452,130,189,0,599,436,320,245,336,225,134,37,87,0)
extinct.pop <- data.frame(rep,year,pop.size)
plot(extinct.pop$year[1:10], extinct.pop$pop.size[1:10],
type="l", xlim= c(0,10))
for (i in 2:(length(extinct.pop$year)/10)){
lines(extinct.pop$year[(1+(i-1)*10):(i*10)],
extinct.pop$pop.size[(1+(i-1)*10):(i*10)])}
ありがとうございました!
再現可能な例を作成できるようにデータのセクションを追加できますか?例えば、 http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example –