के "मध्य" में केवल एनएएस के लिए पद प्राप्त करें, मैं एक मैट्रिक्स में एनए मानों की स्थिति को संदर्भित करता हूं जो इंडेक्स प्राप्त करना चाहता है, यदि कोई दिया गया सेल NA है और कम से कम है तो सूचकांक सत्य है कॉलम में पहले और बाद में एक गैर-एनए मान। उदाहरण के लिए, निम्नलिखित मैट्रिक्समैट्रिक्स कॉलम
[,1] [,2] [,3] [,4]
[1,] NA 1 NA 1
[2,] 1 NA NA 2
[3,] NA 2 NA 3
सत्य वापस आने वाले इंडेक्स का एकमात्र मान [2,2] होना चाहिए।
क्या मैं क्या करना चाहता हूं इसके लिए एक कॉम्पैक्ट अभिव्यक्ति है? अगर मुझे कॉलम के माध्यम से लूप करना पड़ता था और प्रत्येक कॉलम में पहला गैर-एनए मान खोजने के लिए min(which(!is.na(x[,i])))
जैसे कुछ का उपयोग करना था, और फिर उसके पहले सभी मानों को FALSE (और अधिकतम के बाद सभी मानों के लिए) सेट करना था। इस तरह से मैं अग्रणी और पिछली एनए मानों का चयन नहीं करूंगा। लेकिन यह थोड़ा गन्दा लगता है, इसलिए मैं सोच रहा हूं कि एक क्लीनर अभिव्यक्ति है जो बिना लूप के करता है।
EDIT मान्य होने के लिए एनए मान को केवल कॉलम के भीतर कहीं और उसके बाद एक गैर-एनए मान होना चाहिए, लेकिन इसके लिए जरूरी नहीं है। उदाहरण के लिए, यदि कॉलम (एनए, 3, एनए, एनए, एनए, 4, एनए) द्वारा एक कॉलम परिभाषित किया गया था, तो एनए जो मैं खोजना चाहता हूं वह पद 3, 4, और 5 पर होगा, क्योंकि ये इनके द्वारा संलग्न हैं गैर-एनए मान
[2,3] भी वापस नहीं किया जाना चाहिए? – daroczig
daroczig - नहीं, क्योंकि कॉलम में पहले और उसके बाद कोई गैर-एनए मान नहीं है। – Abiel
धन्यवाद, मुझे आपके प्रश्न को और अधिक विचारपूर्वक पढ़ना चाहिए था। मैंने आपके विवरण के आधार पर एक वेक्टरकृत उत्तर बनाने की कोशिश की, मुझे उम्मीद है कि यह आपके लिए काम कर सकता है। – daroczig