如何在R中下载gzip压缩文件而不将其保存到计算机

时间:2013-07-01 07:53:25

标签: r gz

我是R.的新用户。

我在网上有一些大小为9x500000的txt.gz文件 我试图解压缩一个文件并用read.table()直接读到R. 我使用了这段代码(url censored):

LoadData <- function(){

con <- gzcon(url("http://"))           
raw <- textConnection(readLines(con, n = 25000))
close(con)
dat <- read.table(raw,skip = 2, na.strings = "99.9")
close(raw)

return(dat)

}  

问题是,如果我用readLines读取更多行,那么 程序将花费更多的时间来做它应该做的事情。

我怎么能这样做是合理的时间?

2 个答案:

答案 0 :(得分:1)

你可以制作一个这样的临时文件:

tmpfile <- tempfile(tmpdir=getwd()) 
file.create(tmpfile)
download.file(url,tmpfile)
#do your stuff
file.remove(tmpfile)  #delete the tmpfile

答案 1 :(得分:0)

不要这样做。

每次要访问该文件时,都必须重新下载,这对您来说既费时又费力。

最好下载文件(请参阅download.file),然后在单独的步骤中读取本地副本。

您可以使用untar(..., compressed = "gzip")解压缩文件。