आर

2013-02-04 49 views
7

में मल्टीकोर और डेटाटेबल मैं multicore फ़ंक्शन paralleldata.table के साथ उपयोग करने का प्रयास कर रहा हूं और ऐसा करने के लिए सही तरीके से आने में असमर्थ हूं। कोड:आर

require(multicore) 
require(data.table) 
dtb = data.table(a=1:10, b=1:2) 
x = dtb[,parallel(a+1),by=b] 

> x 
    b pid fd 
1: 1 12243 3 
2: 1 12243 6 
3: 2 12247 4 
4: 2 12247 8 

मैं इस पर collect() कॉल करना चाहते हैं, लेकिन इन नहीं रह गया है parallel वस्तुओं रहे हैं। इसे कैसे करना चाहिए?

+0

'x = dtb [, संग्रह (समांतर (ए + 1)), = b] के साथ क्या गलत है? – Ryogi

+0

संग्रह – Alex

+0

@alex को पूरा करने के समानांतर के लिए प्रतीक्षा करता है @alex यह समझना मुश्किल है कि क्यों एकत्र() समानांतर() के लिए प्रतीक्षा करना एक समस्या है। एक वास्तविक समस्या के लिए अपने उदाहरण को बाहर निकालना भी मुश्किल है, और इसलिए पता है कि आप वास्तव में क्या चाहते हैं। क्या आप हमें समझने में मदद कर सकते हैं? – ndoogan

उत्तर

2

मुझे लगता है कि इस की तर्ज पर है कि आप क्या चाहते:

collect(dtb[, list(jobs = list(parallel(a+1))), by = b][, jobs]) 

कारण आप parallel वस्तुओं किसी भी अधिक नहीं था और नहीं चला सकते हैं एक collect है, क्योंकि उन पर में कनवर्ट किया गया , उन्हें में एक सूची संग्रहित करने के बजाय, जो मैंने ऊपर किया है, को संग्रहीत करने के बजाय।