我有一个脚本使用rNOMADS包下载预测数据.目前,它使用for循环按顺序调用每三小时预测间隔的预测下载功能.问题是下载功能偶尔会随机"冻结",迫使我终止R并开始进程.当它冻结时,代码会在下载功能中挂起几分钟,而不是执行所需的典型<1秒,然后当我尝试暂停执行时,我收到一条消息,说"R没有响应您的中断处理请求,所以停止你可能需要完全终止R的当前操作."
有没有办法为每个for循环迭代中的特定代码块设置时间限制,然后跳过该代码块并在达到时间限制时抛出错误?像tryCatch这样的东西,我可以用它来引发一个标志来重新做循环迭代吗?
就像是:
for (i in 1:N) {
...
setTimeLimit(XXX seconds) {
downloadFunction()
} timeLimitReached {
doOverFlag <- 1
}
}
Run Code Online (Sandbox Code Playgroud)
提前致谢!
r ×1