मुख्य सामग्री पर जाएं
मॉड्यूल 2 · पाठ 2 का 2पाठ्यक्रम में 4/10~12 min
मॉड्यूल पाठ (2/2)

कंडीशनल और लूप्स

आर में जटिल एल्गोरिदम और प्रक्रियाओं को लागू करने के लिए, आपको यह नियंत्रित करने में सक्षम होना चाहिए कि किन निर्देशों को निष्पादित करना है और उन्हें कितनी बार दोहराना है।

सशर्त कथन

आर में, मौलिक सशर्त संरचना if और else पर आधारित है। वाक्यविन्यास जावास्क्रिप्ट या सी जैसी भाषाओं के समान है:

R
score <- 85

if (score >= 60) {
  print("Passed!")
} else {
  print("Failed.")
}

घुंघराले ब्रेसिज़ {} कोष्ठक के अंदर बूलियन अभिव्यक्ति के परिणाम के आधार पर चलने वाले कोड के ब्लॉक को परिभाषित करते हैं।

for लूप

R में for लूप का उपयोग अनुक्रम में तत्वों (जैसे वेक्टर या सूची) को पुनरावृत्त करने के लिए किया जाता है।

R
# Print numbers from 1 to 3
for (i in 1:3) {
  print(i)
}

R में, 1:3 सिंटैक्स वेक्टर c(1, 2, 3) बनाने का एक संक्षिप्त तरीका है।

हम मौजूदा वेक्टर के तत्वों पर सीधे लूप भी कर सकते हैं:

R
fruits <- c("apple", "banana", "cherry")

for (fruit in fruits) {
  print(fruit)
}

ifelse फ़ंक्शन

R में, ifelse() फ़ंक्शन if-else कथन का वेक्टरकृत संस्करण है। यह आपको एक ही ऑपरेशन में पूरे वेक्टर पर एक शर्त लागू करने की अनुमति देता है, जिससे परिणामों का एक वेक्टर वापस आ जाता है।

R
scores <- c(55, 80, 45, 90)
# Se score >= 60 assegna "Pass", altrimenti "Fail"
results <- ifelse(scores >= 60, "Pass", "Fail")
print(results) # "Fail" "Pass" "Fail" "Pass"

while लूप

while लूप का उपयोग कोड के एक ब्लॉक को दोहराने के लिए किया जाता है जब तक कि कोई विशिष्ट स्थिति सत्य बनी रहती है (TRUE)। यह सुनिश्चित करना आवश्यक है कि अनंत लूप को रोकने के लिए स्थिति अंततः झूठी हो जाए।

R
counter <- 1
while (counter <= 3) {
  print(counter)
  counter <- counter + 1
}

खुद कोशिश करना

व्यायाम#r.m2.l2.e1
प्रयास: 0लोड हो रहा है...

एक अन्यथा-सशर्त कथन लिखें जो जाँचता है कि क्या चर स्कोर 60 से अधिक या उसके बराबर है। यदि ऐसा है, तो स्थिति को 'पास' पर सेट करें, अन्यथा इसे 'असफल' पर सेट करें।

संपादक लोड हो रहा है...
संकेत दिखाएँ

सत्यापन स्कोर >= 60 और निर्धारित स्थिति <- 'उत्तीर्ण' या स्थिति <- 'असफल'

3 प्रयासों के बाद समाधान उपलब्ध है

व्यायाम#r.m2.l2.e2
प्रयास: 0लोड हो रहा है...

एक लूप लिखें जो अनुक्रम 1:5 पर पुनरावृत्त होता है और प्रिंट() फ़ंक्शन का उपयोग करके प्रत्येक मान को प्रिंट करता है।

संपादक लोड हो रहा है...
संकेत दिखाएँ

संयुक्त राज्य अमेरिका: for (i in 1:5) { print(i) }

3 प्रयासों के बाद समाधान उपलब्ध है

व्यायाम#r.m2.l2.e3
प्रयास: 0लोड हो रहा है...

वेक्टर v को देखते हुए, एक लूप लिखें जो प्रत्येक तत्व पर पुनरावृत्त होता है और प्रिंट() का उपयोग करके इसके डबल (वैल * 2) को प्रिंट करता है।

संपादक लोड हो रहा है...
संकेत दिखाएँ

v के तत्वों के माध्यम से लूप करें: for (val in v) { print(val * 2) }

3 प्रयासों के बाद समाधान उपलब्ध है

व्यायाम#r.m2.l2.e4
प्रयास: 0लोड हो रहा है...

वेक्टर स्कोर को देखते हुए, ifelse() फ़ंक्शन का उपयोग यह जांचने के लिए करें कि कौन से तत्व 60 से अधिक या उसके बराबर हैं। परिवर्तनीय परिणामों में परिणाम सहेजें (जिसमें प्रत्येक तत्व के लिए 'पास' या 'असफल' होगा)।

संपादक लोड हो रहा है...
संकेत दिखाएँ

फ़ंक्शन का उपयोग करें: परिणाम <- अन्यथा (स्कोर> = 60, 'पास', 'असफल')

3 प्रयासों के बाद समाधान उपलब्ध है

व्यायाम#r.m2.l2.e5
प्रयास: 0लोड हो रहा है...

x के मान को 50 से अधिक होने तक दोगुना करने के लिए थोड़ी देर के लूप का उपयोग करें। प्रत्येक पुनरावृत्ति पर काउंटर वैरिएबल को भी बढ़ाएं।

संपादक लोड हो रहा है...
संकेत दिखाएँ

थोड़ी देर के लूप (x <= 50) का उपयोग करें और घुंघराले ब्रेसिज़ के अंदर x और काउंटर दोनों को अपडेट करें।

3 प्रयासों के बाद समाधान उपलब्ध है