आर

2011-04-23 35 views
43

का उपयोग कर gz फ़ाइल को डीकंप्रेस करें मैंने आर का उपयोग करके ज़िप्ड फ़ाइल की सामग्री प्राप्त करने के लिए अतीत में ?unzip का उपयोग किया है। इस बार, मुझे एक .gz फ़ाइल से फ़ाइलों को निकालने में कठिनाई हो रही है जो here पाया जा सकता है।आर

मैंने ?gzfile और ?gzcon को आजमाया है लेकिन यह काम करने में सक्षम नहीं है। कोई भी सहायता जो आप प्रदान कर सकते हैं उसकी सराहना की जाएगी।

उत्तर

24

यदि आप वास्तव में फ़ाइल को असम्पीडित करना चाहते हैं, तो बस untar फ़ंक्शन का उपयोग करें जो gzip का समर्थन करता है। उदा .:

untar('chadwick-0.5.3.tar.gz') 
47

यहाँ एक काम उदाहरण उदाहरण देकर स्पष्ट करना क्या gzfile() और gzcon() के लिए

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

अब जब कि फ़ाइल लिखा है कर रहे हैं मदद मिल सकती है कि है, file() की अंतर्निहित उपयोग करने के बजाय, gzfile() का उपयोग करें:

R> read.table(gzfile("/tmp/foo.csv.gz")) 
    a  b 
1 A 0.586882 
2 B 0.218608 
3 C 1.290776 
R> 

आपके द्वारा इंगित की गई फ़ाइल एक संपीड़ित टैर संग्रह है, और जहां तक ​​मुझे पता है, आर के पास अभिलेखागार के लिए कोई इंटरफ़ेस नहीं है। इन्हें आमतौर पर स्रोत कोड वितरित करने के लिए उपयोग किया जाता है - उदाहरण के लिए आर पैकेज और आर स्रोतों के लिए।

+3

यह 'fread {data.table}' के साथ ऐसा करना संभव है? मैंने सफलता के बिना अब तक प्रयास किया है –

+0

मुझे ऐसा नहीं लगता है। 'फ्रेड' दस्तावेज की जांच करें। –

+3

'फ़्रेड (पेस्ट 0 (" zcat <", PATH_TO_FILE))' –

17

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

आर नवीनतम संस्करण (2.10) में कंप्रेस फ़ाइलों के कुछ प्रकार के लिए पारदर्शी विसंपीड़न गयी। यदि आपके पास bzip2, xvz, या gzip के साथ संपीड़ित आपकी फ़ाइलें हैं तो उन्हें आर में पढ़ा जा सकता है जैसे कि वे सादा पाठ फ़ाइलें हैं। आपके पास उचित फ़ाइल नाम एक्सटेंशन होना चाहिए।

आदेश ...

myData <- read.table('myFile.gz') 

#gzip संकुचित फ़ाइलें एक "GZ" विस्तार

बस के रूप में अगर 'myFile.gz' काम करेगा गया कच्चे पाठ फ़ाइल है।

+0

यह तब तक काम करता है जब तक आप colClasses तर्क निर्दिष्ट नहीं करते। यदि आप myData <- read.table ('myFile.gz', colClasses = c ("character", "integer")) तो आपको एक त्रुटि मिलेगी (आर 3.2.0 के रूप में)। बकवास। – Met

26

अन-GZ करने के लिए आर में एक फ़ाइल आप कर सकते हैं

library(R.utils) 
gunzip("file.gz") 
+4

जो मैं ढूंढ रहा था वह था। ध्यान रखें: 'नोट: डिफ़ॉल्ट (निकालें = TRUE) व्यवहार यह है कि आउटपुट फ़ाइल पूरी तरह से बनाई और बंद होने के बाद इनपुट फ़ाइल हटा दी जाती है।' - देखें '? Gunzip' – Rentrop

+2

वाह, जो गलत लगता है। – wordsforthewise