尝试使用for循环进行种群模拟

时间:2016-02-16 14:36:36

标签: r

我试图在r中使用for循环来运行100年的人口模拟,但是我的代码存在问题,并且每年都有相同的值。我知道它与breedingPop有关但我无法弄清楚如何让最后的breedingPop用于循环的每个后续运行。这是我的代码:

SWWAyears<-read.csv("C:/Users/Bryan/Desktop/SWWAyears.csv")
SWWAyears$iteration<-NA
breedingPop<-84000
fallMig<-.815
winterSurvival<-.99
springMig<-.815
npFecund<-2.75
pFecund<-.60
breedingSurvival<-.99


for(years in 1:100){
    fallPop<-(breedingPop*fallMig)
    winterPop<-(fallPop*winterSurvival)
    springPop<-(winterPop*springMig)
    summerPop<-(springPop*breedingSurvival)
    breedingPop2<-(((summerPop*.26)*npFecund((summerPop*.14)*pFecund)+(summerPop*.60))  
    SWWAyears[,2]<-breedingPop2

    }

1 个答案:

答案 0 :(得分:1)

我将采取的解决方案是首先将您的起始种群数量(84000)设置为数据框第1行的值。然后在循环内部,您可以引用(第1年)行来获取此值(上一年度),并记录当前年份在(年)行中的新计算值。见下文:

{{1}}

另外,你的初始breedingPop2定义产生了一个错误,所以我把它调整到我认为你想要的 - 不确定我是否正确,但如果需要,这应该是一个小修复。