यहोशू के उत्तर में निरंतरता, यदि आप इस ऑपरेशन को तेज करना चाहते हैं तो एक फिक्स है। यह नक्शा-कम विचारधारा से प्रेरित है और मैंने कुछ समय पहले नमूना डेटासेट पर पीओसी किया था।
मैंने बर्फबारी पुस्तकालय का उपयोग किया- मुझे विश्वास है कि आप डीएमसी के साथ भी काम कर सकते हैं।
# On my phone, please pardon typos/bugs
test <- data.frame(x=1:1000000, y=rep(c(1:20), 500))
testList = list()
testList[[1]] <- test[c(1:250000),]
testList[[2]] <- test[c(250001:500000),]
testList[[3]] <- test[c(500001:750000),]
testList[[4]] <- test[c(750001:1000000),]
# Write a function for the above - Need to find optimum number of splits
sfInit(parallel = TRUE, cpus=4)
sfCluster(plyr)
meanList = sfClusterSpplyLB(testList, function(x) ddply(test, "y", mean))
sfStop()
aggregate(meanList, by=list(y), FUN=mean)
यह पराक्रम यदि आपको मदद की, यह देखते हुए कि अब हम एक वितरित फैशन में विभाजित गठबंधन नियमित कर रहे हैं। यह उन तरीकों से काम करता है जब विभाजन का आकार समान होता है, यह रकम, न्यूनतम/अधिकतम, गिनती आदि के लिए काम करता है ठीक है लेकिन कुछ ऐसे ऑपरेशन हैं जिनका हम इसका उपयोग नहीं कर सकते हैं।
आपके द्वारा किए जा रहे वास्तविक गणनाओं के आधार पर, 'data.table' पैकेज वास्तव में उन्हें वास्तव में गति दे सकता है। अपने सभी गुणों के लिए, 'प्लीयर' पैकेज में 'विभाजन-लागू-गठबंधन' कार्यान्वयन वास्तव में काफी धीमा है, जबकि 'data.table' सबसे पहले और सबसे तेज़ गति के लिए डिज़ाइन किया गया है। (यदि आप चिंतित हैं, तो बहुत से शुरुआती बिंदु प्राप्त करने के लिए '[r] [data.table] plyr' जैसे कुछ के लिए SO खोजें।) –
धन्यवाद जोश, मैं एक नज़र डालेगा। – Alex