2013-07-05 11 views
10

私は圧縮されたCSVファイルに書きたい大きなdata.frameを持っています。ディスクアクセスを減らすためにwrite.csv/gzipステップを実行する代わりに、CSV.TAR.GZ圧縮ファイルに直接データを書き込む方法はありますか?Rでwrite.csvをtar.gz形式に直接変換する方法は?

ありがとうございました。

答えて

27

gzfile(またはbzip2アーカイブの場合はbzfile、xzアーカイブの場合はxzfile)を使用してください。

z <- gzfile("mtcars.csv.gz") 
write.csv(mtcars, z) 

PS。 1つのデータフレームしか持たない場合は、確かにtarは必要ありません。

+2

ありがとうございました。 close()が必要ですか? – imriss

+0

少なくともWindowsでは、いいえ。実際には、ファイルが書き込まれた後に接続で何かをしようとするとエラーになります。 –

+1

お役立ち情報多分、それは修正すべきバグです。 – imriss