2014-07-02 3 views
6

जब मैं आर से एक वस्तु को बचाने() का उपयोग कर, क्या सहेजी गई फ़ाइल का आकार निर्धारित बचाने के? स्पष्ट रूप से यह object.size() द्वारा निर्धारित ऑब्जेक्ट के आकार के समान (या उसके करीब) नहीं है।आर में सहेजी गई वस्तु का आकार क्या निर्धारित करता है?

उदाहरण: मैं एक डेटा फ्रेम पढ़ सकते हैं और

snpmat=read.table("Heart.txt.gz",header=T) 
save(snpmat,file="datamat.RData") 

फ़ाइल datamat.RData 360MB है के आकार का उपयोग कर इसे बचा लिया।

> object.size(snpmat) 
4998850664 bytes  #Much larger 

तो मैं कुछ प्रतिगमन विश्लेषण प्रदर्शन किया और एक ही आयाम (6,820,000 पंक्तियों और 80 कॉलम) का एक और डेटा फ्रेम adj.snpmat प्राप्त की।

> object.size(adj.snpmat) 
4971567760 bytes  

मैं इसे

> save(adj.snpmat,file="adj.datamat.RData") 

का उपयोग कर अब फ़ाइल adj.datamat.RData का आकार 3.3GB है सहेजें। मैं उलझन में हूं कि ऑब्जेक्ट.size() समान आकार देता है, जबकि दो फाइलें आकार में इतनी अलग क्यों हैं। सहेजे गए ऑब्जेक्ट के आकार को निर्धारित करने के बारे में कोई भी विचार स्वागत है।

कुछ अधिक जानकारी:

> typeof(snpmat) 
[1] "list" 

> class(snpmat) 
[1] "data.frame" 

> typeof(snpmat[,1]) 
[1] "integer" 

> typeof(snpmat[,2]) 
[1] "double"   #This is true for all columns except column 1 

> typeof(adj.snpmat) 
[1] "list" 

> class(adj.snpmat) 
[1] "data.frame" 

> typeof(adj.snpmat[,1]) 
[1] "character" 

> typeof(adj.snpmat[,2]) 
[1] "double"   #This is true for all columns except column 1 
+1

बचाया '.Rdata' फ़ाइल संकुचित है और इस तरह कम होना चाहिए। संपीड़न एल्गोरिदम और आपके डेटा पर कितना छोटा निर्भर करेगा। – Andrie

+0

मेरे उदाहरण में, कारण क्या हो सकता है? दूसरे शब्दों में, क्या आप मुझे बता सकते हैं कि डेटा के कौन से पहलू इसे प्रभावित करते हैं? – Pratyay

+2

@Pratyay संपीड़न के बारे में आप क्या जानते हैं? यह संभवतः उस पर पढ़ने के लिए फायदेमंद होगा क्योंकि मूल रूप से आप जो पूछ रहे हैं। http://en.wikipedia.org/wiki/Data_compression – Dason

उत्तर

0

आपका मैट्रिक्स बहुत अलग हैं और इसलिए बहुत अलग ढंग से सेक।

एसएनपी डेटा केवल कुछ ही मान हैं (उदाहरण के लिए, 1 या 0) और भी बहुत विरल है। इसका मतलब है कि संपीड़न करना बहुत आसान है। उदाहरण के लिए, यदि आपके पास सभी शून्यों का मैट्रिक्स था, तो आप एक मान (0) के साथ-साथ आयाम निर्दिष्ट करके डेटा को संपीड़ित करने के बारे में सोच सकते हैं।

आपका प्रतिगमन मैट्रिक्स मूल्यों के विभिन्न प्रकार होते हैं, और भी वास्तविक संख्या (मैं पी मूल्यों, गुणांक, आदि संभालने हूँ) यह बात बहुत कम संपीड़न योग्य बनाता है।

संबंधित मुद्दे