【发布时间】:2015-08-14 07:06:46
【问题描述】:
我有一个 R For 循环,它从服务器下载数据并将结果添加到表中,但是,有时我会在停止循环时遇到错误。如果我告诉它重做上次下载并继续,它会在下一个错误之前再工作一段时间。
错误与代码或数据无关,而是随机的;有时它会运行 2.5 小时,有时它会在 45 分钟后停止下载相同的数据。
如果出现错误并重试,有没有办法让我的循环后退一步?
例如。在
for (i in 1:1000){
table[i,] <- downloadfnc("URL", file = i)
}
假设我在下载 i=500 时遇到错误,我要做的就是修复:
for (i in 500:1000){
i <- i + 499 #since i starts at 1, 499+1=500
table[i,] <- downloadfnc("URL",file = i)
}
然后即使上次出错,它也会下载文件“500”。 有没有办法可以自动化它,这样如果出现错误,它会后退一步(i-1)并重试(可能会延迟几秒钟)?
(使用 R 只用了几个星期,所以请简单谈谈)
【问题讨论】:
-
似乎是内存问题。
-
downloadfnc 究竟返回了什么?
-
downloadfnc(我起了名字,它实际上是 'DODSGrab')返回一个正式的类 SpaatioTemporalDataFrame(与一些数据坐标)。但我简化了问题的代码。 -- N8TRO,我不认为这是内存问题,因为我只下载了几kb的数据,接收数据需要几秒钟,我会覆盖以前的下载。我认为这与服务器有关。
标签: r for-loop download repeat