我是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读取更多行,那么 程序将花费更多的时间来做它应该做的事情。
我怎么能这样做是合理的时间?
答案 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")
解压缩文件。