R एक डायनैमिक टाइपिंग वाली भाषा है, इसलिए आम तौर पर वेरिएबल का टाइप बताने की ज़रूरत नहीं होती। वैल्यू असाइन करने के लिए पसंदीदा ऑपरेटर <- है।
x <- 42
avogadro <- 6.02e23
mystr <- "Hello, World!"
<- की जगह = इस्तेमाल करना अक्सर काम कर जाता है, पर हमेशा नहीं। इसे खराब स्टाइल माना जाता है, इसलिए इससे बचना चाहिए।
अगर आप RStudio में काम कर रहे हैं, तो इसे कीबोर्ड शॉर्टकट Alt-minus से डाला जा सकता है।
ऑपरेटर ज़्यादातर आम हैं, लेकिन %/% और %% पर ध्यान दीजिए:
2 + 3 # 5
2 - 3 # -1
2 * 3 # 6
2 / 3 # 0.6666667
8 %/% 3 # 2 (integer division)
8 %% 3 # 2 (remainder)
2 ^ 3 # 8 (exponential)
R में # से एक लाइन का कमेंट शुरू होता है।
कई लाइनों वाले कमेंट के लिए कोई अलग सिंटैक्स नहीं है।
फंक्शन बनाने के लिए:
squareit <- function(x) {
x * x
}
फंक्शन में शून्य या उससे अधिक आर्गुमेंट हो सकते हैं, जिन्हें कॉमा से अलग किया जाता है।
function() के साथ ब्रैकेट () ज़रूरी होते हैं, भले ही कोई पैरामीटर न हो।
फंक्शन के आर्गुमेंट के लिए डिफ़ॉल्ट वैल्यू भी तय की जा सकती है, पर ऐसी वैल्यू उन सभी आर्गुमेंट के बाद आनी चाहिए जिनकी कोई डिफ़ॉल्ट वैल्यू नहीं है। डिफ़ॉल्ट वैल्यू असाइन करने के लिए <- की जगह = इस्तेमाल कीजिए।
थोड़ा बेमतलब सा उदाहरण:
squareit <- function(x = 42) {
x * x
}
squareit()
#> [1] 1764
एक लाइन वाली फंक्शन बॉडी के लिए कर्ली ब्रैकेट { } सख्ती से ज़रूरी नहीं हैं, पर उन्हें लिखना अच्छा स्टाइल माना जाता है।
ऊपर के उदाहरणों की तरह R फंक्शन की अंतिम वैल्यू अपने आप लौटा देता है।
फंक्शन बॉडी में कहीं भी return() इस्तेमाल करके रिटर्न वैल्यू को स्पष्ट किया जा सकता है।
फंक्शन कॉल करना कई दूसरी भाषाओं की तरह ही है:
squareit(3)
#> [1] 9
इस अभ्यास में आप कुछ कोड लिखेंगे जिसकी मदद से आप अपनी पसंदीदा रेसिपी की किताब से एक शानदार लज़ान्या पका सकेंगे।
आपके सामने चार काम हैं, और चारों लज़ान्या पकाने में लगने वाले समय से जुड़े हैं।
expected_minutes_in_oven() नाम का फंक्शन बनाइए जो कोई पैरामीटर नहीं लेता और बताता है कि लज़ान्या को ओवन में कितने मिनट रहना चाहिए। रेसिपी की किताब के अनुसार ओवन में अपेक्षित समय 60 मिनट है।
> expected_minutes_in_oven()
[1] 60
remaining_time_in_minutes फंक्शन बनाइए। यह फंक्शन पैरामीटर के रूप में वे मिनट लेता है जितनी देर तक लज़ान्या ओवन में रह चुकी है, और बताता है कि पिछले काम में मिले ओवन के अपेक्षित समय के आधार पर लज़ान्या को ओवन में अभी कितने मिनट और रहना बाकी है।
> remaining_time_in_minutes(50)
[1] 10
prep_time_in_minutes() फंक्शन बनाइए। यह फंक्शन पैरामीटर के रूप में लज़ान्या की उन परतों की संख्या लेता है जो आपने लगाईं, और बताता है कि लज़ान्या तैयार करने में आपको कितने मिनट लगे। इसमें यह मान लिया जाता है कि हर परत तैयार करने में आपको 2 मिनट लगते हैं।
> prep_time_in_minutes(2)
[1] 4
elapsed_time_in_minutes फंक्शन बनाइए जो दो आर्गुमेंट लेता है: पहला आर्गुमेंट लज़ान्या की उन परतों की संख्या है जो आपने लगाईं, और दूसरा पैरामीटर वे मिनट हैं जितनी देर लज़ान्या ओवन में रह चुकी है। फंक्शन को बताना चाहिए कि लज़ान्या पकाने में आपने कुल कितने मिनट काम किया, यानी तैयारी के मिनटों और इस समय ओवन में बिताए मिनटों का जोड़।
> elapsed_time_in_minutes(3, 20)
[1] 26
Exercism पर साइन अप कीजिए और R को 21 कॉन्सेप्ट111 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।