我目前在 R 中有一个循环大约 2000 次(for
循环)的脚本,并且在每个循环中,它使用 url 链接和read.csv
将数据放入变量的函数从数据库中查询数据。
我的问题是:当我查询少量数据(大约 10000 行)时,每个循环大约需要 12 秒,而且很好。但是现在我每个循环需要查询大约 50000 行数据,并且查询时间增加了很多,每个循环需要 50 秒左右。这对我来说很好,但有时我注意到服务器发送数据需要更长的时间(≈75-90 秒)并且显然连接超时并且我收到以下错误:
文件中的错误(文件,“rt”):无法打开连接
另外:警告信息:
在文件(文件,“rt”)中:无法打开:HTTP 状态为“0(无)”
或者这个:
文件中的错误(文件,“rt”):无法打开连接
另外:警告信息:
在文件(文件,“rt”)中:InternetOpenUrl 失败:'操作超时'
我每次都没有得到相同的警告,它在这两者之间变化。
现在,我想要的是避免我的程序在发生这种情况时停止,或者只是防止这个超时错误并告诉 R 等待更多时间来获取数据。我在脚本开始时尝试了这些设置作为可能的解决方案,但它一直在发生。
options(timeout=190)
setInternet2(use=NA)
setInternet2(use=FALSE)
setInternet2(use=NA)
还有其他建议或解决方法吗?可能在发生这种情况时跳到下一个循环,并将此错误发生的次数存储在一个变量中,以便最终可以再次查询它,但仅限于那些i
由于连接错误而被跳过的循环? 当然,理想的解决方案是避免出现此错误。