में मैट्रिक्स की तेज़ सबसेटिंग मुझे निम्न समस्या का सामना करना पड़ता है: मुझे एक बड़े मैट्रिक्स के कई सबसेट की आवश्यकता है। असल में मुझे किसी अन्य फ़ंक्शन f() के इनपुट के रूप में विचारों की आवश्यकता है, इसलिए मुझे मानों को बदलने की आवश्यकता नहीं है। हालांकि ऐसा लगता है कि आर इस कार्य के लिए बहुत धीमी है, या मैं कुछ गलत कर रहा हूं (जो अधिक संभावना है)। खिलौना उदाहरण दिखाता है कि कॉलम का चयन करने में कितना समय लगता है, और फिर उन्हें किसी अन्य फ़ंक्शन में उपयोग करें (इस खिलौने उदाहरण में आदिम फ़ंक्शन योग())। 'बेंचमार्क' के रूप में मैं पूरे मैट्रिक्स को संक्षेप में गणना के समय गणना समय का भी परीक्षण करता हूं, जो आश्चर्यजनक रूप से तेज़ है। मैंने पैकेज रेफरी के साथ भी प्रयोग किया, हालांकि किसी भी प्रदर्शन लाभ को हासिल नहीं किया जा सका। तो मुख्य सवाल यह है कि इसे कॉपी किए बिना मैट्रिक्स को कैसे सब्सक्राइब करना है? मैं किसी भी मदद की सराहना करता हूं, धन्यवाद!आर
library(microbenchmark)
library(ref)
m0 <- matrix(rnorm(10^6), 10^3, 10^3)
r0 <- refdata(m0)
microbenchmark(m0[, 1:900], sum(m0[, 1:900]), sum(r0[,1:900]), sum(m0))
Unit: milliseconds expr min lq mean median uq m0[, 1:900] 10.087403 12.350751 16.697078 18.307475 19.054157 sum(m0[, 1:900]) 11.067583 13.341860 17.286514 19.123748 19.990661 sum(r0[, 1:900]) 11.066164 13.194244 16.869551 19.204434 20.004034 sum(m0) 1.015247 1.040574 1.059872 1.049513 1.067142 max neval 58.238217 100 25.664729 100 23.505308 100 1.233617 100
पूरे मैट्रिक्स संक्षेप का बेंचमार्क कार्य के बारे में 16 बार अन्य कार्यों की तुलना में तेजी १.०५९८७२ मिलीसेकेंड लेता है और है।
मैं एक त्रुटि जब मिल मैं आपका उदाहरण आज़माता हूं: 'r0 में त्रुटि [, 1: 900]: आयामों की गलत संख्या' – 5th
'लाइब्रेरी (' ref ')' इसे ठीक करती है – dvantwisk
ठीक है तो समाधान के लिए यहां मानदंड क्या है? क्या यह अभी आप जो कर रहे हैं उससे तेज होना चाहिए या पूरे मैट्रिक्स को संक्षेप में तेज करना होगा? –