ప్రధాన కంటెంట్‌కు వెళ్లండి
మాడ్యూల్ 2 · 2లో పాఠం 2కోర్సులో 4/10~12 min
మాడ్యూల్ పాఠాలు (2/2)

షరతులు మరియు లూప్‌లు

R లో సంక్లిష్టమైన అల్గారిథమ్‌లు మరియు విధానాలను అమలు చేయడానికి, మీరు ఏ సూచనలను అమలు చేయాలి మరియు వాటిని ఎన్నిసార్లు పునరావృతం చేయాలి అనేదానిని నియంత్రించగలగాలి.

షరతులతో కూడిన ప్రకటనలు

Rలో, ప్రాథమిక షరతులతో కూడిన నిర్మాణం if మరియు elseపై ఆధారపడి ఉంటుంది. వాక్యనిర్మాణం JavaScript లేదా C వంటి భాషలకు చాలా పోలి ఉంటుంది:

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 లూప్

నిర్దిష్ట షరతు నిజం (TRUE) ఉన్నంత వరకు కోడ్ బ్లాక్‌ని పునరావృతం చేయడానికి while లూప్ ఉపయోగించబడుతుంది. అనంతమైన లూప్‌లను నివారించడానికి పరిస్థితి చివరికి తప్పుగా మారేలా చూసుకోవడం చాలా అవసరం.

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

మీరే ప్రయత్నించండి

వ్యాయామం#r.m2.l2.e1
ప్రయత్నాలు: 0లోడ్ అవుతోంది...

వేరియబుల్ స్కోర్ 60 కంటే ఎక్కువ లేదా సమానంగా ఉందో లేదో తనిఖీ చేసే if-else షరతులతో కూడిన స్టేట్‌మెంట్‌ను వ్రాయండి. ఒకవేళ అది ఉంటే, స్థితిని 'పాస్'కి సెట్ చేయండి, లేకుంటే దానిని 'ఫెయిల్'కి సెట్ చేయండి.

ఎడిటర్ లోడ్ అవుతోంది…
సూచనను చూపించు

వెరిఫికా స్కోర్ >= 60 ఇ అసెగ్నా స్టేటస్ <- 'పాస్' లేదా స్టేటస్ <- 'ఫెయిల్'

3 ప్రయత్నాల తర్వాత పరిష్కారం లభిస్తుంది

వ్యాయామం#r.m2.l2.e2
ప్రయత్నాలు: 0లోడ్ అవుతోంది...

సీక్వెన్స్ 1:5పై మళ్ళించే లూప్ కోసం ఒక వ్రాయండి మరియు ప్రింట్() ఫంక్షన్‌ని ఉపయోగించి ప్రతి విలువను ప్రింట్ చేస్తుంది.

ఎడిటర్ లోడ్ అవుతోంది…
సూచనను చూపించు

Usa la sintassi: కోసం (i in 1:5) {print(i)}

3 ప్రయత్నాల తర్వాత పరిష్కారం లభిస్తుంది

వ్యాయామం#r.m2.l2.e3
ప్రయత్నాలు: 0లోడ్ అవుతోంది...

వెక్టార్ v ఇచ్చినట్లయితే, ప్రతి మూలకంపై మళ్ళించే లూప్ కోసం రాయండి మరియు ప్రింట్()ని ఉపయోగించి దాని డబుల్ (వాల్ * 2)ని ప్రింట్ చేస్తుంది.

ఎడిటర్ లోడ్ అవుతోంది…
సూచనను చూపించు

v యొక్క మూలకాల ద్వారా లూప్ చేయండి: (val in v) {print(val * 2)}

3 ప్రయత్నాల తర్వాత పరిష్కారం లభిస్తుంది

వ్యాయామం#r.m2.l2.e4
ప్రయత్నాలు: 0లోడ్ అవుతోంది...

వెక్టార్ స్కోర్‌లను బట్టి, ఏ మూలకాలు 60 కంటే ఎక్కువ లేదా సమానంగా ఉన్నాయో తనిఖీ చేయడానికి ifelse() ఫంక్షన్‌ను ఉపయోగించండి. వేరియబుల్ ఫలితాలలో ఫలితాన్ని (ప్రతి మూలకం కోసం 'పాస్' లేదా 'ఫెయిల్' కలిగి ఉంటుంది) సేవ్ చేయండి.

ఎడిటర్ లోడ్ అవుతోంది…
సూచనను చూపించు

ఫంక్షన్ ఉపయోగించండి: ఫలితాలు <- ifelse(స్కోర్లు >= 60, 'పాస్', 'ఫెయిల్')

3 ప్రయత్నాల తర్వాత పరిష్కారం లభిస్తుంది

వ్యాయామం#r.m2.l2.e5
ప్రయత్నాలు: 0లోడ్ అవుతోంది...

x విలువ 50ని మించే వరకు రెట్టింపు చేయడానికి కాసేపు లూప్‌ని ఉపయోగించండి. ప్రతి పునరావృతం వద్ద కౌంటర్ వేరియబుల్‌ను కూడా పెంచండి.

ఎడిటర్ లోడ్ అవుతోంది…
సూచనను చూపించు

కాసేపు లూప్ (x <= 50) ఉపయోగించండి మరియు కర్లీ బ్రేస్‌ల లోపల x మరియు కౌంటర్ రెండింటినీ నవీకరించండి.

3 ప్రయత్నాల తర్వాత పరిష్కారం లభిస్తుంది