w*******9 发帖数: 1433 | 1 我要循环地generate random data然后估计参数,估计参数的时候会极其偶尔地遇到收
敛很慢的情,我想如果这次估计参数超过一分钟的话就跳过这次运算,进入下一次
iteration。有没有类似tryCatch的东西能处理这种情况?
for(i in 1:100000){
# generate data
# Estimate Parameter <-- 我想做的是 if(time)>1min, then quit and goto i=
i+1.
}
| t******g 发帖数: 372 | 2 EstPara<-function(x, time=as.integer(Sys.time()), maxt=60){
# say the time consuming part is in a for loop
for (j in 1:2){
# do something with x
Sys.sleep(j)
if(as.integer(Sys.time())-time>maxt){
stop('runing too long!')
}
}
return(j)
}
for(i in 1:10){
startt<-as.integer(Sys.time())
res<-tryCatch(EstPara(i, time=startt, maxt=i), error=function(e){
return('not converged')
})
print(paste(i, res))
}
大概如此,只要你可以在你估计参数的函数里经常check下用时然后处理下error/
warning之类的
i=
【在 w*******9 的大作中提到】 : 我要循环地generate random data然后估计参数,估计参数的时候会极其偶尔地遇到收 : 敛很慢的情,我想如果这次估计参数超过一分钟的话就跳过这次运算,进入下一次 : iteration。有没有类似tryCatch的东西能处理这种情况? : for(i in 1:100000){ : # generate data : # Estimate Parameter <-- 我想做的是 if(time)>1min, then quit and goto i= : i+1. : } :
| w*******9 发帖数: 1433 | 3 TooYoung, I really appreciate it. It probably meets my needs. I will try it
later. Thanks again. |
|