2

我是 R 的新用户。

我在网上有一些大约 9x500000 大小的 txt.gz 文件。
我正在尝试解压缩文件并使用 read.table() 将其直接读取到 R。
我使用了这段代码(网址审查):

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 读取更多行,
程序将花费更多时间来完成它应该做的事情。

我怎样才能做到这一点是合理的时间?

4

2 回答 2

1

您可以像这样制作一个临时文件:

tmpfile <- tempfile(tmpdir=getwd()) 
file.create(tmpfile)
download.file(url,tmpfile)
#do your stuff
file.remove(tmpfile)  #delete the tmpfile
于 2013-07-01T14:45:34.070 回答
0

不要这样做。

每次您想要访问该文件时,您都必须重新下载它,这对您来说既耗时又对文件托管商而言成本高昂。

更好的做法是下载文件(请参阅 参考资料download.file),然后在单独的步骤中读入本地副本。

您可以使用untar(..., compressed = "gzip").

于 2013-07-01T11:30:08.077 回答