我想在forloop中完成什么,但仍然遇到困难:
prb[i]=(prb[i-1]*ER)+b[i]
prb[1]=(prb[0]*ER)+b[1]
prb[2]=(prb[1]*ER)+b[2]
然后从等式的左边输出prb [1,2,3 ....]。
此外,定义SS以反映前一时间步骤的prb(即(prb-1))
我试图在空载体中保存我的forloop的结果。但是,输出到矢量中的值是相同的值(即从第一次迭代开始),并且它似乎没有具有我正在尝试的加性效应。某些事情似乎与我的代码逻辑有关。我希望b [i]中的值在b [i + 1]中用于forloop的下一次运行。有没有人对问题有任何想法或解决方案?最好!
马修
#Parameters
c=0.2
A=5
d=8
d0=5
s=0.5
e=0.1
p=0.6
ER=e/A
#Colonization Equation Probabilities
C2 = c*A*exp(-d*s/d0) #ML to SS
#Empty Vectors
l=vector(mode="numeric", length=100) #open vectors to store the different probability values from the forloop
b=vector(mode="numeric", length=100)
prb=(l*ER) + b #total probability of SS being colonized
#Island States
ML=1
SS=prb
n.I=c(ML, SS)
#Forloop and Conditional Statements
for(i in 2:101) {
(SS[i]=prb[i-1])
(prb[i]=(l[i]*ER)+b[i])
if (SS < 1 ) {
(l[i]=prb[i-1])
} else if(SS < 1){
b[i]=C2
}
}
答案 0 :(得分:0)
我复制了你的代码然后运行它。我的观察是:
首先你应该修改你的矢量索引,然后你应该修改你的条件,以便它允许一个快速启动。