web-dev-qa-db-ja.com

Rを使用してgzファイルを解凍する

利用した ?unzipを使用して、Rを使用して圧縮ファイルの内容を取得します。今回は、.gzファイルからファイルを抽出するのに苦労しています here

私が試してみました ?gzfileおよび?gzconしかし、機能させることができていません。あなたが提供できる助けは大歓迎です。

55
Btibert3

ファイルを本当に解凍したい場合は、gzipをサポートするuntar関数を使用してください。例えば。:

untar('chadwick-0.5.3.tar.gz')
26
daroczig

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
_

ファイルが作成されたので、file()を暗黙的に使用する代わりに、gzfile()を使用します。

_read.table(gzfile("/tmp/foo.csv.gz"))   
#  a        b
#1 A 0.586882
#2 B 0.218608
#3 C 1.290776
_

あなたがポイントするファイルは圧縮されたtarアーカイブであり、私が知る限り、R自体にはtarアーカイブへのインターフェースがありません。これらは、たとえばRパッケージやRソースなど、ソースコードを配布するためによく使用されます。

59

Rでファイルをgz解除するには

library(R.utils)
gunzip("file.gz", remove=FALSE)

または

gunzip("file.gz")

しかし、その後、出力ファイルが完全に作成されて閉じられた後に入力ファイルが削除されるデフォルト(remove = TRUE)の動作を取得します。

32
Robert Hijmans

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')  

#gzip圧縮ファイルの拡張子は「gz」です

「myFile.gz」が未加工のテキストファイルであるかのように動作します。

19
WCC