利用R語言解壓與壓縮.tar.gz.zip等格式文件

最近嘗試用 R 對一些文件進行批量的解壓與壓縮,這裡記錄一些常用的解壓與壓縮的方法。

由於解壓與壓縮是對稱的兩種方法,這裡我們著重以對文件的解壓為例,分不同的格式進行講解。

.zip

壓縮:zip()

解壓:unzip()

若要壓縮文件,就直接在 zip() 函數的第一個參數裡面輸入壓縮後的文件名,第二個參數輸入壓縮前的文件名。

而解壓文件就更簡單瞭,直接利用 unzip() 裡面加上需要解壓的文件名稱即可。

.tar.gz

壓縮:tar()

解壓:untar()

.zip 後綴的壓縮文件。

.gz 與 .bz2

這兩個壓縮文件與前面的相比,是最與眾不同的,因為這兩種後綴的文件,可以稱之為壓縮文件,也可以直接作為一個數據文件,當成 data frame 直接進行讀取。因為其本身就是數據文件。

下面我們以 解壓 / 讀取 進行詳細說明:

1) 直接解壓

R 中默認沒有解壓相關文件的函數,需要使用一個包:R.utils,然後如下述代碼所示,利用 gunzip() 函數,即可解壓。

library(R.utils)
gunzip("file.gz", remove = `TRUE`)
bunzip2("file.bz2", remove = `TRUE`)

註意是這個函數裡面多瞭一個 remove = 參數,選擇 TRUE 就會隻保留解壓後的文件,原壓縮包會被刪除,默認就是 TRUE

解壓之後,我們可以直接用 read.table() 對其進行讀取。

2) 直接讀取

當然,如果我們的目的隻是讀取其中的數據,而不是一定需要解壓,則可以使用兩個默認函數組合的形式,直接對數據進行讀取:

dat <- read.table(gzfile("file.gz"))  

而針對 2.10 版本之後的 R,還有另一種更方便的讀取方式,就是直接使用 read.table() 對其進行讀取。

dat <- read.table("file.gz")

參考

Decompress gz file using R

untar: Extract Or List Tar Archives

以上就是利用R語言解壓與壓縮.tar.gz.zip等格式文件的詳細內容,更多關於R語言解壓與壓縮文件的資料請關註WalkonNet其它相關文章!

推薦閱讀: