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 တစ်ခု၏တန်ဖိုးကိုမည်သို့ပြန်ရမည်နည်း။