मैं आर में ज्यामितीय प्रगति में संख्याओं का अनुक्रम कैसे उत्पन्न कर सकता हूं? उदाहरण के लिए मुझे अनुक्रम उत्पन्न करने की आवश्यकता है: 1, 2,4,8,16,32 और इसी तरह .... एक सीमित मूल्य कहने तक?जियोमेट्रिक प्रगति में संख्या
उत्तर
यहाँ मैं क्या कर चाहते हैं:
geomSeries <- function(base, max) {
base^(0:floor(log(max, base)))
}
geomSeries(base=2, max=2000)
# [1] 1 2 4 8 16 32 64 128 256 512 1024
geomSeries(3, 100)
# [1] 1 3 9 27 81
धन्यवाद, क्या आप ऊपर मेरी टिप्पणी देख सकते हैं और मुझे बता सकते हैं कि क्या मैं इस कोड को उस फैशन में लिख सकता हूं? मैं एक नौसिखिया हूं और इसलिए बहुत सारे संदेह हैं :( – Maddy
आपका अंतिम लक्ष्य क्या है? क्या आप आर में कुछ करने के लिए एक स्क्रिप्ट लिख रहे हैं और यदि हां, तो आप इसके साथ क्या करने की कोशिश कर रहे हैं? यदि आप आर के लिए नए हैं, एक छोटा सा अध्ययन मध्यम अवधि में बहुत मदद करेगा। इस प्रश्न में बहुत सारे संसाधन हैं: http://stackoverflow.com/questions/192369/books-for-learning-the-r-language – SlowLearner
@ मैडी - जोश का जवाब यही है आप चाहते हैं कि मैं मानता हूं। 'geomSeries (2,32) 'जैसा कि उसकी प्रतिक्रिया में उल्लिखित है, आपको 32 के अधिकतम मूल्य तक आधार 2 प्रगति प्रदान करेगा। – thelatemail
क्यों न केवल 2^(0: n) दर्ज करें? जैसे 2^(0: 5) आपको 1 से 32 तक ले जाता है और इसी तरह। की तरह एक चर को बताए द्वारा वेक्टर कैद तो: एक्स < - 2^(0: 5)
जब मैं कहता हूँ 100 1 से एक दृश्य, 10 से incrementing चाहते हैं, मैं लिखने (0, 5, = 1 से): seq (1, 100, से = 10)। तो अब मैं 1 से 1000 का अनुक्रम चाहता हूं जो ज्यामितीय रूप से 1, फिर 2, फिर 4 और इसी तरह की वृद्धि करता है। – Maddy
ऐसा कुछ ऐसा है जो एक ज्यामितीय प्रगति प्राप्त करता है जो हमेशा निर्दिष्ट संख्या से कम समाप्त होता है (इस मामले में 1000): '2^(1: मंजिल (लॉग (1000,2)))' – thelatemail
सुझाव है कि आप ' seq() ', ऊपर बपतिस्मा की टिप्पणी के अनुसार। आर 'फ़ंक्शन पर सहायता प्राप्त करने के लिए' '' और फ़ंक्शन नाम करें, इसलिए '? Seq'। इस मामले में आप कुछ 'seq (0, 10, by = 10)' चाहते हैं। ध्यान दें कि 0 से 100 तक, 1 से 100 तक नहीं, जो नियमित रूप से दूरी वाली श्रृंखला नहीं है। – SlowLearner
आप एक ज्यामितीय अनुक्रम में किसी भी पद मिल सकता है इस गणितीय समारोह के साथ:
अवधि = शुरू * अनुपात ** (एन-1)
कहाँ: 012,
शब्द = अनुक्रम में शब्द जो आप चाहते हैं
प्रारंभ = क्रम में पहला शब्द
अनुपात = सामान्य अनुपात (यानी। अनुक्रम को परिभाषित करने वाले एकाधिक)
n = अनुक्रम में शब्द की संख्या
इस जानकारी का उपयोग करके, आर में एक फ़ंक्शन लिखें जो किसी भी प्रारंभ और अनुपात के लिए ज्यामितीय अनुक्रम का कोई सबसेट प्रदान करता है:
#begin = beginning of subset
#end = end of subset
geomSeq <- function(start,ratio,begin,end){
begin=begin-1
end=end-1
start*ratio**(begin:end)
}
geomSeq(1, 2, 1, 10)
# [1] 1 2 4 8 16 32 64 128 256 512
geomSeq(10,3,1,8)
# [1] 10 30 90 270 810 2430 7290 21870
geomSeq(10,3,4,8)
# [1] 270 810 2430 7290 21870
'2^seq' – baptiste