2012-10-12 25 views
6

Let मैं() पाश कदम चौड़ाई

a <- seq(1, 100, 1) 

की तरह एक सरणी और मैं बस तत्वों को एक दूसरे, उदा से शुरू एक for() पाश के साथ एक 3 चरणों घटित चयन करना चाहते हैं 2, 5, 8, 11 और इसी तरह से।

इस मामले में मुझे for() का उपयोग कैसे करना चाहिए?

b <- NULL 
# for(i in 1:length(a)) { # Is there any additional argument? 
    # b[i] <- a[...] # Or I can just multiply 'i' by some integer? 
# } 

धन्यवाद,

+0

आप इस – Dason

उत्तर

11

उपयोग 3 क्यों for का उपयोग seq

for (i in seq(2, length(a), by=3)) {} 

> seq(2, 11, 3) 
[1] 2 5 8 11 
+0

मैं थोड़ा अलग अलग भाषाओं से उलझन में हूँ के लिए पाश के लिए एक का उपयोग should't, मैं की तरह कुछ कोशिश कर रहा था '(i 1: लंबाई (क), मैं + 3) {} 'और ऐसी चीजें :) –

+0

यदि आप ऐसा सोच रहे हैं तो आप बहुत ही अक्षम आर कोड के साथ समाप्त होने जा रहे हैं, भले ही आप इसे आर में कैसे करें, यह समझें कि आपकी समस्या का एक बड़ा हिस्सा पोस्ट करने पर विचार करें एक और सवाल, खासकर यदि कोड धीमा चल रहा है। – John

3

में by के लिए मूल्य के रूप में?

b <- a[seq(2,length(a),3)] 
+0

मेरी गलती, मूल समस्या में जिसे मैं हल करना चाहता था, मेरे पास '()' का उपयोग करने से कोई अन्य विकल्प नहीं था; संक्षेप में मैंने अपने मूल मुद्दे को पुन: पेश नहीं किया, लेकिन मैंने निर्दिष्ट किया कि मैं '() 'का उपयोग करना चाहता हूं। –

+1

यदि आपको वास्तव में() के लिए उपयोग करना है तो आपको अभी भी लूप में जितना संभव हो सके कोड की मात्रा बनाना होगा।() उदाहरण में अनुक्रम का चयन वास्तव में लूप के बाहर है। आपको अपने आर कोड को अनुकूलित करने के लिए जितना संभव हो उतना सोचना चाहिए। – John

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

  • कोई संबंधित समस्या नहीं^_^