Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 从网上下载_R - Fatal编程技术网

R 从网上下载

R 从网上下载,r,R,最好不要在R中使用“for loop,while loop”,我想用两种方法从web下载url: 1.使用for循环 url1="http://stat.ethz.ch/R-manual/R-devel/library/base/html/connections.html" url2="http://en.wikipedia.org/wiki/Xz" url=c(url1,url2) dw=c("test1","test2") for (i in 1:2){download.file(url[i

最好不要在R中使用“for loop,while loop”,我想用两种方法从web下载url:

1.使用for循环

url1="http://stat.ethz.ch/R-manual/R-devel/library/base/html/connections.html"
url2="http://en.wikipedia.org/wiki/Xz"
url=c(url1,url2)
dw=c("test1","test2")
for (i in 1:2){download.file(url[i],destfile=dw[i])}
如何将“for循环”方法更改为“apply”方法

2.使用RCurl

require(RCurl)
urls = c("http://stat.ethz.ch/R-manual/R-devel/library/base/html/connections.html", "http://en.wikipedia.org/wiki/Xz")
txt = getURIAsynchronous(urls)

URL包含数千个网址如何?如果URL包含10000个网址,则内存或磁盘空间不足…

您可以使用
mapply

urls <- rep('http://stackoverflow.com/questions/12169074/download-from-web',2) 
destfiles <- paste0('test',1:2,'.html')

mapply(download.file, url = urls, destfile = destfiles)

url您可以使用
mapply

urls <- rep('http://stackoverflow.com/questions/12169074/download-from-web',2) 
destfiles <- paste0('test',1:2,'.html')

mapply(download.file, url = urls, destfile = destfiles)

url关于for循环问题,您可以使用以下内容:

sapply(seq_along(url), function(n) download.file(url[n], dw[n])
它的作用与for循环非常相似。或者@mnel在
mapply
上有一个很好的解决方案。但是,在这种情况下,使用for循环是不受欢迎的。事实上,在R中有许多编写for循环的方法一点都不慢。R地狱有一个关于这方面的很好的章节

最短的答案是,对于R中的循环,只要输出是预先分配的,而不是在循环过程中增长的,就可以了


对于您的
RCurl
问题,如果您遇到内存错误,您有两个选择。1.获得更多内存。或2.分块下载数据,并在下载更多数据之前将其写入磁盘。

关于for循环问题,您可以使用以下方法:

sapply(seq_along(url), function(n) download.file(url[n], dw[n])
它的作用与for循环非常相似。或者@mnel在
mapply
上有一个很好的解决方案。但是,在这种情况下,使用for循环是不受欢迎的。事实上,在R中有许多编写for循环的方法一点都不慢。R地狱有一个关于这方面的很好的章节

最短的答案是,对于R中的循环,只要输出是预先分配的,而不是在循环过程中增长的,就可以了


就您的
RCurl
问题而言,如果您遇到内存错误,您有两个选择。1.获得更多内存。或2.分块下载数据,并在下载更多数据之前将其写入磁盘。

我同意,但我认为我已解码。OP似乎需要一个矢量化版本的download.file(在第一种情况下).不知道RCurl查询我同意,但我认为我已经解码了。OP似乎想要一个矢量化版本的download.file(在第一种情况下)。不知道RCurl查询