R တွင် repeat loop ရေးနည်း (ဥပမာ 3 ခု)


ရပ်သည့်အခြေအနေသို့မရောက်မချင်း လုပ်ဆောင်ချက်တစ်ခုကို ထပ်ခါတလဲလဲလုပ်ဆောင်ရန် R တွင် ထပ်ခါတလဲလဲ loop ကို အသုံးပြုနိုင်ပါသည်။

R တွင် ထပ်ခါတလဲလဲ loop ကိုရေးရန် အောက်ပါအခြေခံ syntax ကိုသုံးနိုင်သည်။

 repeat {
  #do something

  if (some condition){
  break
  }
}

အောက်ဖော်ပြပါနမူနာများသည် မတူညီသောအခြေအနေများတွင် ထပ်ခါတလဲလဲကွင်းပတ်ကိုအသုံးပြုနည်းကိုပြသထားသည်။

ဥပမာ 1- တိကျသောနံပါတ်သို့မရောက်မချင်း ပုံနှိပ်တန်ဖိုးများ

အောက်ပါကုဒ်သည် တန်ဖိုးများကို 1 မှစတင်၍ 10 သို့ရောက်ရှိသည်အထိ ပရင့်ထုတ်ရန် ထပ်ခါတလဲလဲလှည့်ပတ်မှုကို အသုံးပြုနည်းကို ပြသသည်-

 #define starting value
x <- 0

#perform repeat-loop
repeat {
  x <- x+1
  print (x)

  if (x >= 10){
  break
  }
}

[1] 1
[1] 2
[1] 3
[1] 4
[1] 5
[1] 6
[1] 7
[1] 8
[1] 9
[1] 10

ဤကုဒ် အလုပ်လုပ်ပုံမှာ အောက်ပါအတိုင်းဖြစ်သည်-

  • စတင်တန်ဖိုးကို x = 0 အဖြစ် သတ်မှတ်သည်။
  • ကျွန်ုပ်တို့သည် R ကို x ဖြင့် 1 တိုးရန်ပြောပြီး x ကို print ထုတ်ပါ။
  • x ၏တန်ဖိုး 10 သို့မဟုတ် ထို့ထက်ပို၍ရောက်သည်နှင့်တစ်ပြိုင်နက် ထပ်ခါတလဲလဲ loop ကို ချိုး ရန် R ကိုပြောခဲ့သည်။

ဥပမာ 2- တိကျသောနံပါတ်တစ်ခုမရောက်ရှိမချင်း Vector သို့တန်ဖိုးများထည့်ပါ။

တိကျသောနံပါတ်တစ်ခုသို့မရောက်မချင်း vector တစ်ခုသို့ တန်ဖိုးများထည့်ရန် ထပ်ခါတလဲလဲ loop ကိုအသုံးပြုပုံကို အောက်ပါကုဒ်က ပြသည်-

 #define empty vector and starting value
data <-c()
x <- 0

#perform repeat-loop
repeat {
  x <- x+1
  data[x] <- x
print (data)
  
  if (x >= 5){
  break
  }
}

[1] 1
[1] 1 2
[1] 1 2 3
[1] 1 2 3 4
[1] 1 2 3 4 5

ဤကုဒ် အလုပ်လုပ်ပုံမှာ အောက်ပါအတိုင်းဖြစ်သည်-

  • ကျွန်ုပ်တို့သည် ဗလာဗကို ဖန်တီးပြီး x = 0 အဖြစ် သတ်မှတ်သည်။
  • ကျွန်ုပ်တို့သည် R ကို x ဖြင့် 1 တိုးရန်ပြောခဲ့ပြီး၊ ထို့နောက် vector ၏ xth အနေအထားတွင် x ၏တန်ဖိုးကိုထည့်ပါ။
  • x ၏တန်ဖိုး 5 သို့မဟုတ် ထို့ထက်ပို၍ရောက်သည်နှင့်တပြိုင်နက် ထပ်ခါတလဲလဲ loop ကို ချိုး ရန် R ကိုပြောခဲ့သည်။

ဥပမာ 3- တိကျသောနံပါတ်တစ်ခုသို့ရောက်ရှိသည်အထိ ဒေတာဘောင်ရှိ တန်ဖိုးများကို ပြောင်းလဲပါ။

တိကျသောနံပါတ်တစ်ခုသို့မရောက်မချင်း ရှိပြီးသားဒေတာဘောင်တစ်ခု၏တန်ဖိုးများကိုမွမ်းမံရန် ထပ်ခါတလဲလဲလှည့်ကွက်ကိုအသုံးပြုပုံကို အောက်ပါကုဒ်ကပြသသည်-

 #define data frame and starting value
df <- data. frame (A=c(6, 7, 2, 8),
                 B=c(2, 4, 5, 5))
x <- 0

#perform repeat-loop
repeat {
  x <- x+1
  df$A[x] <- x
  df$B[x] <- x * 2

  if (x >= nrow(df)){
  break
  }
}

#view resulting data frame
df

  AB
1 1 2
2 2 4
3 3 6
4 4 8

ဤကုဒ် အလုပ်လုပ်ပုံမှာ အောက်ပါအတိုင်းဖြစ်သည်-

  • ကျွန်ုပ်တို့သည် ဗလာဒေတာဘောင်တစ်ခုကို ဖန်တီးပြီး စတင်တန်ဖိုးကို x = 0 အဖြစ် သတ်မှတ်သည်။
  • ကျွန်ုပ်တို့သည် R ကို x ဖြင့် 1 တိုးရန် ပြောခဲ့ပြီး၊ ထို့နောက် x ၏တန်ဖိုးကို ကော်လံ A ၏ xth အနေအထားတွင် ထည့်ပြီး x*2 ၏တန်ဖိုးကို ကော်လံ B ၏ xth အနေအထားတွင် ထည့်ပါ။
  • x ဒေတာဘောင်ရှိ အတန်းအရေအတွက်ထက် ညီမျှသော သို့မဟုတ် ကြီးသောတန်ဖိုးသို့ x ရောက်သည်နှင့် တစ်ပြိုင်နက် ထပ်ခါတလဲလဲ loop ကို ချိုးဖျက်ရန် R ကို ပြောခဲ့သည်။

ထပ်လောင်းအရင်းအမြစ်များ

အောက်ဖော်ပြပါ သင်ခန်းစာများသည် R တွင် အခြားဘုံအလုပ်များကို မည်သို့လုပ်ဆောင်ရမည်ကို ရှင်းပြသည်-

R တွင် nested For loop ဖန်တီးနည်း
R တွင် If Else ကြေငြာချက် nested ကိုဘယ်လိုရေးရမလဲ
R တွင် ကော်လံအမည်များကို မည်သို့ပြန်ဆိုရမည်နည်း။

မှတ်ချက်တစ်ခုထည့်ပါ။

သင့် email လိပ်စာကို ဖော်ပြမည် မဟုတ်ပါ။ လိုအပ်သော ကွက်လပ်များကို * ဖြင့်မှတ်သားထားသည်