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 တွင် ကော်လံအမည်များကို မည်သို့ပြန်ဆိုရမည်နည်း။