R တွင် သင်၏ ပထမဆုံး trycatch() လုပ်ဆောင်ချက်ကို ဘယ်လိုရေးရမလဲ


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

ဤလုပ်ဆောင်ချက်သည် အောက်ပါအခြေခံ syntax ကိုအသုံးပြုသည်-

 my_function <- function (x, y){
    tryCatch (
        #try to do this
        {
        #some expression
        },
        #if an error occurs, tell me the error
        error= function (e) {
            message(' An Error Occurred ')
            print(e)
        },
        #if a warning occurs, tell me the warning
        warning= function (w) {
            message(' A Warning Occurred ')
            print(w)
            return (NA)
        }
    )
}

အောက်ဖော်ပြပါ ဥပမာများသည် tryCatch() လုပ်ဆောင်ချက်ကို လက်တွေ့တွင် အသုံးပြုနည်းကို ပြသထားသည်။

ဥပမာ- R တွင် tryCatch() လုပ်ဆောင်ချက်ကို ဖန်တီးပါ။

ကျွန်ုပ်တို့သည် တန်ဖိုးတစ်ခု၏မှတ်တမ်းကိုရယူပြီး ဒုတိယတန်ဖိုးဖြင့် ပိုင်းခြားရန်ကြိုးစားသည့် အောက်ပါ tryCatch() လုပ်ဆောင်ချက်ကို ဖန်တီးသည်ဟုဆိုကြပါစို့။

အမှားအယွင်းတစ်ခုဖြစ်ပေါ်ပါက ကျွန်ုပ်တို့သည် “ အမှားတစ်ခုဖြစ်ပွားခဲ့သည်” ဟူသော မက်ဆေ့ချ်ကို ထုတ်ပြန်ပြီးနောက် အမှားကို R သို့ ပရင့်ထုတ်မည်ဖြစ်သည်။

သတိပေးချက်တစ်ခုဖြစ်ပေါ်ပါက “ သတိပေးချက်တစ်ခုဖြစ်ပွားခဲ့သည်” ဟူသောသတိပေးချက်ကို R သို့ပရင့်ထုတ်ပြီးနောက် NA တန်ဖိုးကို ပြန်ပေးပါမည်။

အမှားအယွင်းများ သို့မဟုတ် သတိပေးချက်များ မပေါ်ပေါက်ပါက၊ ကျွန်ုပ်တို့သည် လုပ်ဆောင်ချက်ရလဒ်ကို ရိုးရိုးရှင်းရှင်း ပြန်ပေးပါမည်။

 log_and_divide <- function (x, y){
    tryCatch (
        {
        result = log(x) / y
        return (result)
        },
        error= function (e) {
            message(' An Error Occurred ')
            print(e)
        },
        warning= function (w) {
            message(' A Warning Occurred ')
            print(w)
            return (NA)
        }
    )
}

ဤလုပ်ဆောင်ချက်ကို မတူညီသောအခြေအနေများတွင် လုပ်ဆောင်ကြပါစို့။

ဇာတ်လမ်း 1- အမှားများ သို့မဟုတ် သတိပေးချက်များ မဖြစ်ပေါ်ပါ။

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

 #run function
log_and_divide(10, 2)

[1] 1.151293

အမှားအယွင်းများ သို့မဟုတ် သတိပေးချက်များ မပေါ်ပေါက်သောကြောင့် လုပ်ဆောင်ချက်သည် 1.151293 ဟူသော စကားရပ်၏ ရလဒ်ကို ရိုးရိုးရှင်းရှင်း ပြန်ပေးသည်။

ဇာတ်လမ်း 2- အမှားအယွင်းတစ်ခု ဖြစ်ပေါ်သည်။

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

 #run function
log_and_divide(10)

An Error Occurred
<simpleError in doTryCatch(return(expr), name, parentenv, handler):
  argument "y" is missing, with no default>

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

ဇာတ်လမ်း 3- သတိပေးချက်တစ်ခု ဖြစ်ပေါ်သည်။

သတိပေးချက်တစ်ခုဖြစ်ပေါ်လာသည့် အခြေအနေတွင် လုပ်ဆောင်ချက်ကို အောက်ပါကုဒ်တွင် ဖော်ပြသည်-

 #run function
log_and_divide(-10, 2)

A Warning Occurred
<simpleWarning in log(x): NaNs produced>
[1] NA

ပထမအငြင်းအခုံအတွက် အနုတ်တန်ဖိုးကို ကျွန်ုပ်တို့ ပံ့ပိုးပေးသောကြောင့် R သည် အနုတ်တန်ဖိုး၏ မှတ်တမ်းကို မတွက်ချက်နိုင်သောကြောင့် ” သတိပေးချက်တစ်ခု ဖြစ်ပွားခဲ့သည် ” ဟူသော မက်ဆေ့ချ်ကို လက်ခံရရှိသည်၊ R မှ ထုတ်ပေးသော အတိအကျသတိပေးချက်ကို ကျွန်ုပ်တို့တွေ့မြင်ရပြီး လုပ်ဆောင်ချက်သည် NA အဖြစ် ပြန်ပေးသည်။ အနှုတ်တန်ဖိုးရှိသည်။ ရလဒ်။

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

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

R တွင် nested For loop ဖန်တီးနည်း
R တွင် loop ကိုအသုံးပြု၍ vector တစ်ခုသို့တန်ဖိုးများထည့်နည်း
R တွင် function တစ်ခု၏တန်ဖိုးကိုမည်သို့ပြန်ရမည်နည်း။

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

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