我不断收到错误消息:“下标超出范围”

时间:2019-03-27 19:47:15

标签: r

我有一个跨度为1984年至1988年的矩阵,以及一个循环,该循环应在2017年之前完成该矩阵,但似乎无法访问x年之前的测量值。 这个循环。

这是鲑鱼的种群,疯子和dib代表在海上经过1个冬季和2个冬季后回到出生河里产卵的成年人。由于它们大约需要3年才能成熟,因此我试图在三年前获取卵子以生出新一代,为疯子4年前为疯子,为5年前为dib进入疯子。生下当年的卵。

A<-2.012
V<-34
J<- -265.94
Sos<-0.0172


t <- 1984
D <- NA
mad <- 1805
dib <- 1023
oeufs<-((0.71*mad*(2025*1.67))+(0.71*dib*(1.745*4.08)))
Saumon <- matrix(c(t,mad,dib,oeufs,D),nrow=1,ncol=5)
colnames(Saumon) <- c("t","madeli","diber","oeufs","D")

t <- 1985
D <- NA
mad <- 1093
dib <- 1246
oeufs<-((0.71*mad*(2025*1.67))+(0.71*dib*(1.745*4.08)))
Saumon <- rbind(Saumon,c(t,mad,dib,oeufs,D))

t <- 1986
D <- NA
mad <- 1603
dib <- 1227
egg<-((0.71*mad*(2025*1.67))+(0.71*dib*(1.745*4.08)))
Salmon <- rbind(Salmon,c(t,mad,dib,egg,D))


t <- 1987
D <- NA
mad <- 1352
dib <- 1144
egg<-((0.71*mad*(2025*1.67))+(0.71*dib*(1.745*4.08)))
Salmon <- rbind(Salmon,c(t,mad,dib,egg,D))


t <- 1988
D <- NA
mad <- 1696
dib <- 1335
egg<-((0.71*mad*(2025*1.67))+(0.71*dib*(1.745*4.08)))
Salmon <- rbind(Salmon,c(t,mad,dib,egg,D))


for(t in 1989:2017){
  D <- sample(133:150,size=1,replace=TRUE)
  egg <- Salmon[t-3,4]
  Smolt3<-egg*Sos
  Smoltmer<-((A*(D+V)+J)/100)*Smolt3
  madeli <- Salmon[t-4,2]
  diber <- Salmon[t-5,3]
  egg<-((0.71*madeli*(2025*1.67))+(0.71*diber*(1.745*4.08)))
  diber<-(Smoltmer*0.43*0.0083)
  madeli<-(Smoltmer*0.57*exp(-(0.15*4.45)+0.9868))
  Salmon <- rbind(Salmon,c(t,madeli,diber,egg,D))
}

0 个答案:

没有答案