R 从网上下载
最好不要在R中使用“for loop,while loop”,我想用两种方法从web下载url: 1.使用for循环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
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查询