يستطيع مستخدم لغة البرمجة آر تعريف دالة (User-defined Function) تقبل عدد من المتغيرات وتجري عليها بعض العمليات للوصول الى نتائج معينة وهي تمثل اختصار للمجموعة من الأوامر والعبارة البرمجية بحيث تسهل التعامل معها واستدعائها. وتأخذ الدالة المعرفة في آر الشكل العام التالي:
function_name=function(arg,...){
body
}
حيث أن:
function_name | أسم الدالة |
arg | متغير او عدة متغيرات ويمكن أن تكون متجه، مصفوفة، قائمة … الخ. |
body | العمليات التي سوف تتم على المتغيرات (arg) حتى عرض النتائج. |
لكتابة الدالة SQ في لغة البرمجة آر R والتي تكون مدخلاتها القيمة x ثم تحسب القيمه التربيعه لها، يمكن استخدام الكود التالي:
In:
SQ=function(x){
out=x^2
return(out)
}
ثم بعد ذلك يتم استدعاء الدالة من خلال أسمها كما يلي:
In: SQ(2) Out: [1] 4 In: SQ(3) Out: [1] 9
لكتابة الدالة SR في برنامج آر R والتي تكون مدخلاتها القيمة x ثم تحسب الجذر التربعي. تعطي هذه الدالة رسالة خطأ إذا كانت القيمة المدخلة أصغر من الصفر، يمكن استخدام الكود التالي:
In:
SR=function(x){
out=ifelse(x>=0,sqrt(x),"error: x must be >=0")
return(out)
}
والتي يمكن أن تعطي النتائج التالية:
In: SR(4) Out: [1] 2 In: SR(-4) Out: [1] "error: x must be >=0"
لكتابة الدالة SS في برنامج آر R والتي تكون مدخلاتها المتجه x ثم تحسب الوسط والوسيط وأصغر وأكبر قيمة. تعطي هذه الدالة رسالة خطأ إذا كان طول المتجه أصغر من 2، يمكن استخدام الكود التالي:
In:
SS=function(x){
if (length(x)<2){ print("the length of vector x must be > 2")}
else{
m1=mean(x)
m2=median(x)
m3=min(x)
m4=max(x)
return(list(Mean=m1,Median=m2,Minimum=m3,Maximum=m4))}
}
والتي يمكن استخدامها كما يلي:
In: x=c(1,3,4) SS(x) Out: $Mean [1] 2.666667 $Median [1] 3 $Minimum [1] 1 $Maximum [1] 4 In: x=2 SS(x) Out: [1] "the length of vector x must be > 2"