كيفية كتابة دالة trycatch() الأولى في r
يمكنك استخدام دالة TryCatch() في R لإرجاع قيمة تعبير أو إنتاج رسالة مخصصة في حالة مواجهة تحذير أو خطأ.
تستخدم هذه الوظيفة بناء الجملة الأساسي التالي:
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() عمليًا.
مثال: قم بإنشاء دالة TryCatch() في R
لنفترض أننا أنشأنا دالة 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:
كيفية إنشاء حلقة For متداخلة في R
كيفية إضافة قيم إلى المتجه باستخدام حلقة في R
كيفية إرجاع قيمة دالة في R