Ron*_*ash 2 for-loop r download repeat
我有一个R For循环,它从服务器下载数据并将结果添加到表中,但是,我有时会在停止循环时出错.如果我告诉它重做上一次下载并继续,它会在下一次错误之前的另一次下载.错误不是代码或数据,而是随机的; 有时它运行2.5小时,有时它会在下载相同数据 45分钟后停止运行.
如果有错误并重试,有没有办法让我的循环退后一步?例如.在
for (i in 1:1000){
table[i,] <- downloadfnc("URL", file = i)
}
Run Code Online (Sandbox Code Playgroud)
假设我在下载i = 500时遇到错误,我所做的就是:
for (i in 500:1000){
i <- i + 499 #since i starts at 1, 499+1=500
table[i,] <- downloadfnc("URL",file = i)
}
Run Code Online (Sandbox Code Playgroud)
然后它下载文件"500",即使它上次出错.有没有办法让它自动化,所以如果有错误,它需要退一步(i-1)并重试它(可能延迟几秒)?
(已经使用R只有几个星期,所以基本的谈话请)
你可以抛出一个try-catch组合.
for (i in 1:1000){
while(TRUE){
df <- try(downloadfnc("URL", file = i), silent=TRUE)
if(!is(df, 'try-error')) break
}
table[i,] <- df
}
Run Code Online (Sandbox Code Playgroud)
这将在while循环内继续,直到文件成功下载,并且仅在成功下载文件时继续.