R- အငြင်းအခုံသည် သုညအလျားဖြစ်သည်။


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

 Error in if (x < 10) {: argument is of length zero

R တွင် if statement တွင် ယုတ္တိနှိုင်းယှဉ်မှုကို လုပ်ဆောင်ရန် ကြိုးပမ်းသောအခါတွင် ဤအမှားသည် များသောအားဖြင့် ဖြစ်ပေါ်တတ်သော်လည်း နှိုင်းယှဉ်မှုတွင် သင်အသုံးပြုနေသည့် ကိန်းရှင်သည် အလျား သုညဖြစ်သည်။

သုညအလျားကိန်းရှင်များ၏ ဥပမာနှစ်ခုမှာ ဂဏန်း() သို့မဟုတ် အက္ခရာ(0) ဖြစ်သည်။

အောက်ဖော်ပြပါ ဥပမာသည် ဤအမှားကို လက်တွေ့ဖြေရှင်းနည်းကို ပြသထားသည်။

အမှားကို ဘယ်လိုပြန်ထုတ်မလဲ။

အလျား သုညဖြင့် R တွင် အောက်ပါ ကိန်းဂဏာန်းကိန်းရှင်ကို ဖန်တီးသည်ဆိုပါစို့။

 #create numeric variable with length of zero
x <- numeric()

အခု if statement မှာ ဒီ variable ကို သုံးဖို့ ကြိုးစားတယ်ဆိုပါစို့

 #if x is less than 10, print x to console
if(x < 10 ) {
  x
}

Error in if (x < 10) {: argument is of length zero

ကျွန်ုပ်တို့သတ်မှတ်ထားသော variable သည် အလျား သုညဖြစ်သောကြောင့် အမှားအယွင်းတစ်ခုရှိသည်။

အကယ်၍ ကျွန်ုပ်တို့သည် အမှန်တကယ်တန်ဖိုးဖြင့် ကိန်းဂဏာန်းကိန်းရှင်တစ်ခုကို ရိုးရိုးရှင်းရှင်းဖန်တီးပါက if statement ကိုအသုံးပြုသောအခါတွင် ဤအမှားကို ကျွန်ုပ်တို့ ဘယ်တော့မှ ရရှိလိမ့်မည်မဟုတ်ပေ။

 #create numeric variable
y <- 5

#if y is less than 10, print y to console
if(y < 10 ) {
  y
}

[1] 5

အမှားကို ဘယ်လိုရှောင်မလဲ။

သုညအငြင်းအခုံအရှည် အမှားကိုရှောင်ရှားရန်၊ အောက်ပါယုတ္တိဗေဒကိုအသုံးပြုသည့် isTRUE လုပ်ဆောင်ချက်ကိုထည့်သွင်းရန်လိုအပ်သည်-

 is. logical (x) && length(x) == 1 && !is. na (x) && x

if statement မှာ ဒီ function ကိုသုံးရင်၊ ကျွန်တော်တို့ရဲ့ variable ကို value တစ်ခုနဲ့ နှိုင်းယှဉ်တဲ့အခါ error ရရှိမှာ မဟုတ်ပါဘူး။

 if(isTRUE(x) && x < 10 ) {
  x
}

အမှားတစ်ခုကို လက်ခံရရှိမည့်အစား isTRUE(x) လုပ်ဆောင်ချက်သည် FALSE သို့ အကဲဖြတ်သောကြောင့် x ၏တန်ဖိုးကို ဘယ်တော့မှ ရိုက်နှိပ်မည်မဟုတ်ပါ။

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

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

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

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

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