想请教一个R语言循环
我有一个单独循环(一下代码),现在我想把它整体重复1000次如何实现呢?K<-10000
a<-1
r<-0.04
Bt<-c()
Nmin<-c()
Bt<-as.numeric(0.3*K)
Kill<-129
####先求t——t+1之间的N###
for (t in 1:100) {
Bt<-Bt+r*Bt*(1-Bt/K)
if(t%%4==0){
set.seed(555)
Nmean<-rnorm(1000,mean=Bt,sd=Bt*0.2)
Nmean<-sample(Nmean, size=1, replace=FALSE)
set.seed(777)
Nmin<-rnorm(1000,mean=Nmean,sd=Nmean*0.2)
PBR=min(Nmin)*0.1*1.04
set.seed(666)
Kill<-rnorm(1000,mean=PBR,sd=PBR*0.2)
Kill<-sample(Kill, size=1, replace=FALSE)
Bt=Bt-Kill
Kill<-Kill
print(Bt)
}
else{
Bt=Bt-Kill
print(Bt)
}
}
plot(Bt)
####重复1000次####这个结果不太符合我的预期,想知道自己哪里出错了
K<-10000
r<-0.04
Bt<-c()
Nmin<-c()
Bt<-matrix(NA,101,1000)
Nmin<-c()
Nmean<-c()
Bt<-as.numeric(0.3*K)
Kill<-129
####先求t——t+1之间的N###
for (j in 1:1000) {
for (t in 1:100) {
Bt<-Bt+r*Bt*(1-Bt/K)
if(t%%4==0){
Nmean<-rnorm(1000,mean=Bt,sd=Bt*0.5)
Nmean<-sample(Nmean, size=1, replace=FALSE)
Nmin<-rnorm(1000,mean=Nmean,sd=Nmean*0.5)
PBR=min(Nmin)*0.1*1.04
Kill<-rnorm(1000,mean=PBR,sd=PBR*0.5)
Killnew<-sample(Kill, size=1, replace=FALSE)
Bt=Bt-Killnew
Kill<-Killnew
}
else{
Bt=Bt-Kill
}
}
}
View(Bt) 可以在外面再套一个for循环 可以在外面再套一个repeat循环 临时号 发表于 2022-6-16 13:38
可以在外面再套一个for循环
你好,下面重复1000次的就是用for循环,但是结果不太对 傻眼貓咪 发表于 2022-6-16 14:17
可以在外面再套一个repeat循环
你好Bt【t+1】是100个数字,怎样让他repeat的呀?转化成矩阵么 Tom小太子 发表于 2022-6-16 15:59
你好Bt【t+1】是100个数字,怎样让他repeat的呀?转化成矩阵么
请问你想实现什么?有题目吗? 傻眼貓咪 发表于 2022-6-16 14:17
可以在外面再套一个repeat循环
K<-10000
a<-1
r<-0.04
Bt<-c()
Nmin<-c()
Bt<-as.numeric(0.3*K)
Kill<-129
####先求t——t+1之间的N###
for (t in 1:100) {
Bt<-Bt+r*Bt*(1-Bt/K)
if(t%%4==0){
set.seed(555)
Nmean<-rnorm(1000,mean=Bt,sd=Bt*0.2)
Nmean<-sample(Nmean, size=1, replace=FALSE)
set.seed(777)
Nmin<-rnorm(1000,mean=Nmean,sd=Nmean*0.2)
PBR=min(Nmin)*0.1*1.04
set.seed(666)
Kill<-rnorm(1000,mean=PBR,sd=PBR*0.2)
Kill<-sample(Kill, size=1, replace=FALSE)
Bt=Bt-Kill
Kill<-Kill
print(Bt)
}
else{
Bt=Bt-Kill
print(Bt)
}
}
你好,我就想这个for循坏重复1000次,因为里面rnorm是随即数,它跑出来的数t~t+1年的数应该每一这个循环都会不一样,就是一个模拟过程 Tom小太子 发表于 2022-6-16 16:21
K
j<-1
repeat{
Bt<-Bt
j<-j+1
if(j<=1000)next else break
}
我刚尝试了一下repeat,用矩阵的话,跑出来的结果好像不对 Tom小太子 发表于 2022-6-16 16:22
j
如果结果不对,可能是代码有错了,应该和循环没有关系 傻眼貓咪 发表于 2022-6-16 16:30
如果结果不对,可能是代码有错了,应该和循环没有关系
好的,谢谢
页:
[1]