2012-09-25 13 views
8

लेते हुए सूची ऑब्जेक्ट्स के साथ इंटरैक्टिव रूप से काम करते हैं। मैंने हाल ही में बहुत बड़ी मैट्रिक्स को संभालने के लिए पैकेज bigmemory, ff और filehash के चमत्कारों की खोज की है।बड़े पैमाने पर मेमोरी को संभालने के लिए सूची मेमोरी

मैं बहुत बड़ी (300 एमबी ++) सूचियों को कैसे संभाल सकता हूं? मेरे काम में मैं हर दिन इन सूचियों के साथ काम करता हूं। मैं save() & load() हर जगह हैक के साथ बैंड-सहायता समाधान कर सकता हूं लेकिन मैं bigmemory-जैसे समाधान पसंद करूंगा। bigmemorybigmatrix की तरह कुछ आदर्श होगा, जहां मैं इसके साथ मूल रूप से matrix पर काम करता हूं सिवाय इसके कि यह मेरी रैम में 660 बाइट्स की तरह somethign लेता है।


इन सूचियों ज्यादातर lm() वस्तुओं (या इसी तरह प्रतिगमन वस्तुओं) की >1000 लंबाई सूची नहीं है। उदाहरण के लिए,

Y <- rnorm(1000) ; X <- rnorm(1000) 
A <- lapply(1:6000, function(i) lm(Y~X)) 
B <- lapply(1:6000, function(i) lm(Y~X)) 
C <- lapply(1:6000, function(i) lm(Y~X)) 
D <- lapply(1:6000, function(i) lm(Y~X)) 
E <- lapply(1:6000, function(i) lm(Y~X)) 
F <- lapply(1:6000, function(i) lm(Y~X)) 

अपने प्रोजेक्ट में मैं A,B,C,D,E,F प्रकार सूची (और इस से भी अधिक) मैं सहभागी के साथ काम करने के लिए है कि होगा।

यदि ये विशाल मैट्रिस थे तो समर्थन का एक टन है। मैं सोच रहा था कि बड़े list वस्तुओं के लिए किसी भी पैकेज में कोई समान समर्थन था या नहीं।

+0

क्या आप किस पैकेज का उपयोग करने के बारे में सुझाव मांग रहे हैं? – GSee

+2

"सर्वोत्तम प्रथाओं" सलाह का समर्थन करने के लिए उपस्थिति बहुत अस्पष्ट है। इन "सूचियों" की प्रकृति को वर्णित करने की आवश्यकता होगी। शायद डेटाबेस इंटरफेस में से एक। कोडिंग सलाह के लिए बेहतर कार्य विवरण की आवश्यकता है। –

+1

शायद [SOAR] (http://cran.r-project.org/web/packages/SOAR/index.html) पैकेज को देखें? – mnel

उत्तर

2

आप पैकेज का उपयोग कर डिस्क पर सूचियों को स्टोर और एक्सेस कर सकते हैं। यह (मेरी मशीन पर नहीं बल्कि धीरे-धीरे अगर ...) काम करना चाहिए:

Y <- rnorm(1000) ; X <- rnorm(1000) 

# set up disk object 
library(filehash) 
dbCreate("myTestDB") 
db <- dbInit("myTestDB") 

db$A <- lapply(1:6000, function(i) lm(Y~X)) 
db$B <- lapply(1:6000, function(i) lm(Y~X)) 
db$C <- lapply(1:6000, function(i) lm(Y~X)) 
db$D <- lapply(1:6000, function(i) lm(Y~X)) 
db$E <- lapply(1:6000, function(i) lm(Y~X)) 
db$F <- lapply(1:6000, function(i) lm(Y~X)) 

सूची आइटम [ फंक्शन का उपयोग करके पहुँचा जा सकता है। अधिक जानकारी के लिए यहां देखें: http://cran.r-project.org/web/packages/filehash/vignettes/filehash.pdf