使用R解压缩gz文件

Bti*_*rt3 59 gzip r

?unzip过去用过来使用R来获取压缩文件的内容.这次,我很难从.gz文件中提取文件,可以在这里找到.

我已经尝试过?gzfile,?gzcon但却无法让它发挥作用.我们将非常感谢您提供的任何帮助.

Dir*_*tel 63

这是一个有用的例子,可以帮助说明什么gzfile()gzcon()适用

foo <- data.frame(a=LETTERS[1:3], b=rnorm(3))
foo
#  a        b
#1 A 0.586882
#2 B 0.218608
#3 C 1.290776
write.table(foo, file="/tmp/foo.csv")
system("gzip /tmp/foo.csv")             # being very explicit
Run Code Online (Sandbox Code Playgroud)

既然已经编写了文件,而不是隐式使用file(),请使用gzfile():

read.table(gzfile("/tmp/foo.csv.gz"))   
#  a        b
#1 A 0.586882
#2 B 0.218608
#3 C 1.290776
Run Code Online (Sandbox Code Playgroud)

你指向的文件是一个压缩的tar档案,据我所知,R本身没有tar档案的界面.这些通常用于分发源代码 - 例如R包和R源.

  • 事实上它可以.我每天都会使用这个技巧. (7认同)
  • 可以用`fread {data.table}`做到这一点吗?到目前为止,我尝试过没有成功 (4认同)
  • 实际上,当前版本的data.table实际上支持csv.gz(不需要zcat) (2认同)

Rob*_*ans 34

要在R中取消gz文件,你可以这样做

library(R.utils)
gunzip("file.gz", remove=FALSE)
Run Code Online (Sandbox Code Playgroud)

  • 这就是我在寻找的东西.请注意:`注意:默认(remove = TRUE)行为是在输出文件完全创建和关闭之后删除输入文件. - 参见`?gunzip` (10认同)

dar*_*zig 29

如果你真的想要解压缩文件,只需使用untar支持gzip的功能.例如:

untar('chadwick-0.5.3.tar.gz')
Run Code Online (Sandbox Code Playgroud)


WCC*_*WCC 20

http://blog.revolutionanalytics.com/2009/12/r-tip-save-time-and-space-by-compressing-data-files.html

R在最新版本(2.10)中为某些类型的压缩文件添加了透明解压缩.如果您使用bzip2,xvz或gzip压缩文件,则可以将它们读入R,就好像它们是纯文本文件一样.你应该有适当的文件扩展名.

命令...

myData <- read.table('myFile.gz')  
Run Code Online (Sandbox Code Playgroud)

#gzip压缩文件的扩展名为"gz"

就像'myFile.gz'是原始文本文件一样工作.