Что я пытаюсь сделать в forloop и все еще возникают трудности с: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
}
}
Ваш цикл 'for' не использует переменную итератора,' i', а затем 'prb' инициализируется как произведение пустых векторов, а затем * C1 * и * C3 * являются константами. Как изменить элементы в пустых векторах? – Parfait
Помогает ли вам переместить определения для 'prb' и' prb.T' внутри цикла? – Aramis7d
Перемещение формул prb и prb.T не помогает –