मैं इन मात्राओं की गणना करना चाहता हूं
a12 = sum_ (i 1 से i एम) sum_ (j1 और lt; j2) (I (एक्स [i] & gt; वाई [जे 1] और एक्स [i] & gt; वाई [जे 2])) a13 = sum_ (j से 1 से n) sum_ (i1 और lt; i2) (I (एक्स [i1] & gt; वाई [जे] और एक्स [i2] & gt; वाई [जे]) जहां मैं सूचक फ़ंक्शन है।
इसलिए मैं इस आर कोड के साथ आया
a12 = 0; (1: (मी में 1: (लंबाई (Z2) -1)) (a12 & lt; -a12 + (Z1 [एल] & लेफ्टिनेंट; Z2 [मी] ) * (Z1 [एल + 1] & लेफ्टिनेंट; जेड 2 [एम]) * 1 ए 13 और एलटी; -13 + (जेड 1 [एल] & लेफ्टिनेंट; जेड 2 [एम]) * (जी 1 [एल] & एलटी; जेड 2 [एम + 1]) * 1} # समापन मी} # बंद l a12 = a12 + योग ((Z1 [-लेम्थि (Z1)] & lt; Z2 [लंबाई (Z2)]) * (Z1 [-1] & लेफ्टिनेंट; Z2 [लंबाई (Z2)] ) * 1) a13 = a13 + sum ((Z1 [लंबाई (Z1)] और लेफ्टिनेंट; Z2 [-लेम्थि (Z2)]) * (Z1 [लंबाई (Z1)] & lt; Z2 [-1]) * 1) ए 12 ; दुर्भाग्यवश, न केवल यह बहुत धीमा है लेकिन मुझे वह नहीं मिल रहा है जो मुझे करना चाहिए था।
क्या आप मेरी मदद कर सकते हैं, कृपया!
धन्यवाद,
रोलैंड
मैं मान रहा हूँ ( A12 ) आप निम्न कार्य करना चाहते हैं। आपके पास दो वैक्टर x (लंबाई का m ) और y है, और प्रत्येक तत्व x [i] के लिए x , आप विशिष्ट सूचकांक जोड़े j1 , j2 का y की संख्या की गणना कर रहे हैं, ऐसा x [I] दोनों y [j1] और y [j2] से अधिक है, और फिर आप इस मात्रा को सभी i पर संक्षेपित कर रहे हैं । a12 करने के लिए यह एक तेज़ तरीका है (दूसरे को एक अभ्यास के रूप में छोड़ दिया जाएगा)। पहले नोट करें कि आप समीकरण के क्रम को फ्लिप कर सकते हैं:
a12 = sum_ (j1 & lt; j2) sum_ (i = 1: m) I (x [i] & gt; वाई [j1] & Amp; एक्स [आई] & gt; वाई [जे 2]), अर्थात् प्रत्येक विशिष्ट सूचकांक-जोड़ी के लिए j1, j2 , हम x तत्वों की संख्या की गणना करते हैं जो दोनों y [j1] और y [J2] , और फिर हम इन सभी अलग-अलग सूचकांक-जोड़े पर इस मात्रा का योग करते हैं। अब जोड़े j1, j2 के लिए आंतरिक राशि की गणना एक मैट्रिक्स गुणन की तरह है। दरअसल, मान लीजिए कि हम वैक्टर x और y :
set.seed (1) x & lt; - नमूना (1: 5, 5, टी) वाई एंड एलटी; - नमूना (1: 5,10, टी) फिर हम एक कोड का उपयोग करने के लिए बाहरी फ़ंक्शन का उपयोग कर सकते हैं Y_x जिसका [i, j] प्रविष्टि सच है अगर और अगर केवल y [i] & lt; X [j] :
y_x & lt; - बाहरी (y, x, FUN = '& lt;') अब हमें मिल जाता है <<> z
जहां z [i, j] कोड> x के तत्वों की संख्या है जो y [i] और y [j] दोनों से अधिक हो। चूंकि हम केवल z के लिए विशिष्ट i & lt; J , हमें z का उपयोग करके
a12 & lt; - sum (z [lower] के निचले त्रिकोण का योग ले कर अंतिम परिणाम प्राप्त होता है। त्रिकोणीय (z)])) gt; A12 [1] 72
Comments
Post a Comment