2012-02-13 10 views
6

जब एक वेक्टर के माध्यम से लूपिंग, तत्व के साथ तत्व के सूचकांक का उपयोग करना संभव है?आर: वेक्टर के माध्यम से लूपिंग करते समय तत्वों की स्थिति जानकारी का उपयोग करना।

a.vector < -c ("एक", "ख", "ग", "एक", "d")

की मैं 'पहली' की "एक" के सूचकांक की जरूरत है लगता है चलो a.vector। एक उपयोग नहीं कर सकते

जो (a.vector == "एक")

क्योंकि वहाँ दो 'एक के होते हैं और यह दो स्थानों वापसी होगी 1 और 4. मैं की जरूरत है उस तत्व की विशिष्ट अनुक्रमणिका जो लूप तुरंत कवर हो रही है।

b.vector < -c ("", "बिल्ली", "पीछा", "एक", "माउस")

for (i in a.vector) { 
    element<-b.vector[INDEX.OF(a.vector)]) 
-------some process using both 'element' and "a"-------} 

:

मैं कुछ इस तरह के लिए इसकी आवश्यकता यह अजगर में 'गणना' समारोह के समान लगता है। एक समाधान बहुत मदद करेगा। धन्यवाद।

उत्तर

12

सूचकांक संख्या के साथ बस लूपिंग के बारे में कैसे?

for (i in seq_along(a.vector)){ 
    a.element <- a.vector[i] 
    b.element <- b.vector[i] 
    ... 
} 
1

which के बजाय which.max का उपयोग करें। यह सत्य> गलत से पहले TRUE की स्थिति को चुनेंगे।

which.max(a.vector=="a") 
#[1] 1 

ऐसा नहीं है कि @James आपके अनुरोध बेहतर समझा मैं से आप वास्तव में अपने पाठ के अंत में एक अलग प्रश्न पूछा की तुलना में आप विषय पंक्ति में पूछा तो आप स्पष्ट करना चाहते हो सकता है संभव है। मैं जोड़ूंगा कि "i" के स्थान को एक छिपे हुए रूप में अपने मूल्य के साथ पास करने की धारणा आर के लिए विदेशी है। लोग अक्सर पूछते हैं कि आर "संदर्भ द्वारा पास" बनाम "मूल्य से गुजरता है"। सही जवाब न तो है ... कि यह "वादे से गुजरता है"। हालांकि, यह अवधारणात्मक रूप से "मूल्य से गुजरने" के करीब है, यह "संदर्भ द्वारा पारित" होगा। for एक फ़ंक्शन है और आर अपने शरीर में फ़ंक्शन आमंत्रण से पारित तर्कों की एक प्रति बनाता है। ऐसी कोई "स्थान" जानकारी नहीं है जो तब तक ले जाती है जब तक कि ऐसी जानकारी न हो जो आपने वास्तव में इसे पारित करने के लिए कहा था।

+0

'पास बाय' पर जानकारी के लिए बहुत धन्यवाद। दरअसल, इसकी स्थान जानकारी जो मैं पास-इन में उपयोग करना चाहता था। यह सच है कि विषय पंक्ति और प्रश्न थोड़ा असंगत हैं। विषय पंक्ति केवल तभी समझती है जब यह लूपिंग से जुड़ा हुआ हो। यह एक वेक्टर के तत्व के लिए एक उंगली को इंगित करने और इसकी अनुक्रमणिका पूछने की तरह है। मैंने गलत अर्थ में 'पुनः घटना' शब्द का प्रयोग किया था जिसका अर्थ था 'तत्व की स्थिति से पहले या बाद में घटनाएं'। उत्तर के लिए, पहला ट्रू भी उपयोग करके प्राप्त किया जा सकता है (...) [1]। आशा है कि नया उप। लाइन बेहतर है। बहुत बहुत धन्यवाद। – jackson

संबंधित मुद्दे