gpt4 book ai didi

r - 从R中的url读取csv文件时超时

转载 作者:行者123 更新时间:2023-12-05 01:07:00 26 4
gpt4 key购买 nike

我目前在 R 中有一个脚本,它循环了大约 2000 次(for 循环),并且在每个循环中它使用 url 链接和 read.csv 从数据库中查询数据。函数将数据放入变量中。

我的问题是:当我查询少量数据(大约 10000 行)时,每个循环大约需要 12 秒,这很好。但是现在我每个循环需要查询大约 50000 行数据,并且查询时间增加了很多,每个循环需要 50 秒左右。这对我来说很好,但有时我注意到服务器发送数据需要更长的时间(≈75-90 秒)并且显然连接超时并且我收到这些错误:

Error in file(file, "rt") : cannot open the connection

In addition: Warning message:

In file(file, "rt") : cannot open: HTTP status was '0 (nil)'



或者这个:

Error in file(file, "rt") : cannot open the connection

In addition: Warning message:

In file(file, "rt") : InternetOpenUrl failed: 'The operation timed out'



我不会每次都收到相同的警告,它在这两者之间发生变化。

现在,我想要的是避免我的程序在发生这种情况时停止,或者只是防止此超时错误并告诉 R 等待更多时间来获取数据。我在脚本开始时尝试过这些设置作为可能的解决方案,但它一直在发生。
options(timeout=190)
setInternet2(use=NA)
setInternet2(use=FALSE)
setInternet2(use=NA)

任何其他建议或解决方法?也许在发生这种情况时跳到下一个循环并将此错误发生的循环次数存储在一个变量中,以便最后可以再次查询,但仅限于那些 i由于连接错误而被跳过的循环中的 ?当然,理想的解决方案是避免出现此错误。

最佳答案

使用 RCurl 的解决方案包裹:

您可以更改 timeout选项使用

curlSetOpt(timeout = 200)

或者通过将其传递到对 getURL 的调用中
getURL(url_vect[i], timeout = 200)

使用基础 R 的解决方案:

只需使用 download.file 下载每个文件,然后担心以后操作这些文件。

关于r - 从R中的url读取csv文件时超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19267261/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com