使用R下载gzip数据文件、提取和导入数据

使用R下载gzip数据文件、提取和导入数据,r,zip,connection,R,Zip,Connection,后续问题:如何使用R下载和解压缩Gzip文件?例如,我有一个。如何使用R下载它 以下是数据url:http://archive.ics.uci.edu/ml/databases/tic/tic.tar.gz请查看帮助(download.file)的内容。如果所讨论的文件只是一个gzip文件,但在其他方面是可读的,那么您也可以将完整的URL提供给read.table()等。这里有一个快速方法 # create download directory and set it .exdir = '~/De

后续问题:如何使用R下载和解压缩Gzip文件?例如,我有一个。如何使用R下载它


以下是数据url:
http://archive.ics.uci.edu/ml/databases/tic/tic.tar.gz

请查看
帮助(download.file)
的内容。如果所讨论的文件只是一个gzip文件,但在其他方面是可读的,那么您也可以将完整的URL提供给
read.table()
等。

这里有一个快速方法

# create download directory and set it
.exdir = '~/Desktop/tmp'
dir.create(.exdir)
.file = file.path(.exdir, 'tic.tar.gz')

# download file
url = 'http://archive.ics.uci.edu/ml/databases/tic/tic.tar.gz'
download.file(url, .file)

# untar it
untar(.file, compressed = 'gzip', exdir = path.expand(.exdir))

我喜欢Ramnath的方法,但我会使用这样的临时文件:

tmpdir <- tempdir()

url <- 'http://archive.ics.uci.edu/ml/databases/tic/tic.tar.gz'
file <- basename(url)
download.file(url, file)

untar(file, compressed = 'gzip', exdir = tmpdir )
list.files(tmpdir)

如果需要对大量文件自动执行此过程,可以对其进行解析

它不仅是gzip,而且是一个压缩的文件文件夹。不过,最好的建议是,您可以在单个文件上使用read.table('myURL.gzip')。+1自动执行此过程的好方法。也许下载+解压本身应该是一个函数,因为它是一个非常常见的操作。是的,这或多或少就是我对Zach已经链接到的问题的回答:我认为basename()和list.files()的使用是值得说明的。正如我所说,这实际上与我写的内容相同——将tar与zip文件内容问题以及您没有使用正确的temp这一事实进行模块化。导演。我想整个问题都可以重复。德克,我还是不明白它是怎么重复的
unz
仅适用于包含单个文件的zip文件。因此,
untar
unz
之间的差异在我看来相当重要,值得提出一个不同的问题。我是不是完全遗漏了什么?所以现在是第三次:下载远程文件,在临时位置扩展它,处理内容,这两个答案都是一样的。唯一的细微差别是提取内容所使用的操作,这取决于它是zip文件还是tar文件。这真的很难理解吗?我很理解,德克。但到那时,如果所有重要的都是答案背后的基本概念,那么几个问题就必须以重复的形式结束。以我的拙见,一个读者想要从下载的档案中提取信息,就不能基于另一个问题来达到他的目的。我不想延长这个讨论,但是如果有其他人认为这是一个简单的扩展和重复,请随时关闭这个问题。快速提问:
path.expand
是代码正常工作所必需的,还是使用完整路径而不是依赖R进行波浪线扩展只是最佳实践?
[1] "TicDataDescr.txt" "dictionary.txt"   "ticdata2000.txt"  "ticeval2000.txt"  "tictgts2000.txt"