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