هذا الموضوع سوف نوضح بالتفصيل بعض الأساسيات في لغة البرمجة آر R والتي تمثل الخطوه الأولى في فهم هذه اللغة الهامة ويمكن تلخيصها كما يلي:
اولاً: إدخال القيم
In: x=2 x Out: [1] 2
كذلك
In: y="Ahmed" y Out: [1] "Ahmed"
ويمكن إدخال متجه (vector) يحوي قيم عددية أو أسمية كما يلي :
In: x=c(1,5,6,8,7) x Out: [1] 1 5 6 8 7 In: z=c("Ahmed","Mohammed") z Out: [1] "Ahmed" "Mohammed"
كذلك، يمكن إدخال مصفوفة (matrix) عدد أعمدتها (ncol) يساوي 2 وعدد صفوفها (nrow) يساوي 3، حيث ترتب العناصر بداً بالأعمدة كما يلي :
In: A=matrix(c(1,2,3,4,5,6),ncol=2,nrow=3) A Out: [,1] [,2] [1,] 1 4 [2,] 2 5 [3,] 3 6
ويمكن إدخال مصفوفة عدد أعمدتها (ncol) يساوي 2 وعدد صفوفها (nrow) يساوي 3، حيث ترتب العناصر بداً بالصفوف بإستخدام :
In: B=matrix(c(1,2,3,4,5,6),ncol=2,nrow=3,byrow=T) B Out: [,1] [,2] [1,] 1 2 [2,] 3 4 [3,] 5 6
كما يمكن استخدام مجموعة مصفوفة في ثلاث ابعاد (array) كما يلي:
In: C = array(1:8, dim = c(2, 2, 2)) C Out: , , 1 [,1] [,2] [1,] 1 3 [2,] 2 4 , , 2 [,1] [,2] [1,] 5 7 [2,] 6 8
كذلك، اطار بيانات (dataframe)، كما يلي:
In: y=c(30,40) z=c("Ahmed", "Mohammed") d=data.frame(y,z) d Out: y z 1 30 Ahmed 2 40 Mohammed
كما يمكن استخدام قائمة (list) وعناصرها يمكن أن تكون متجه، مصفوفة، إطار بيانات او قائمة. مثلاً:
In: l = list(x, A) l Out: [[1]] [1] 1 5 6 8 7 [[2]] [,1] [,2] [1,] 1 4 [2,] 2 5 [3,] 3 6
ويمكن فهرسة (indexing) طرق إدخال البيانات المختلفة كما يلي
النوع | مثال | الوصف |
المتجه (vector) | x[i] | العنصر الذي ترتيبه i |
المصفوفة (matrix) | A[i,j] | العنصر الذي في الصف i والعمود j |
مجموعة المصفوفة (array) | l[i,j,k] | العنصر الذي في الصف i والعمود j والمستوى k |
اطار البيانات (dataframe) | d[i,j] | العنصر الذي في الصف i والعمود j |
القائمة (list) | l[[i]] | العنصر الذي ترتيبه i |
ثانياً: العمليات الحسابية
العملية | الكود |
الضرب | * |
القسمة | / |
الجمع | + |
الطرح | – |
الجذر للعدد a | sqrt(a) |
الأس | ^ |
الوغاريتم للعدد a | log(a) |
ضرب المصفوفات | %*% |
منقول المصفوفة A | t(A) |
معكوس مصفوفة A | solve(A) |
والتي يمكن استخدامها على المدخلات العددية بسهولة. فمثلاً:
In: x=c(1,5,6,8,7) y=c(2,3,5,9,10) x+y Out: [1] 3 8 11 17 17
أو تخزينها في متغير جديد:
In:
d=x+y
ملاحظة: عند إستخدام * لضرب المتجهات أو المصفوفات فإنه يضرب العناصر المتناظرة مع بعض، بالتالي لضرب المصفوفات حسب الطرق الرياضية الصحيحة استخدم %*%.
ثالثاً: كتابة سلسلة عددية بعدة طرق، فمثلاً السلسلة العددية من من 1 الى 20 يمكن كتابتها بالطرق التالية:
الوصف | الكود |
عدد عناصرها 20 وتكون بتزايد ثابت | seq(1,10,length=20) |
بتزايد يساوي 0.7 | seq(1,10, by=0.7) |
من 1 الى 20 بتزايد ثابت يساوي 1 | seq(20) او seq(1:20) |
رابعاً: التكرار، فمثلاً يمكن إعادة تكرار العدد 1 ثلاث مرات كما يلي :
In: r=rep(1,3) r Out: [1] 1 1 1
كذلك يمكن تكرار السلسلة من 1 الى 3 مرتين كما يلي:
In: r=rep(1:3,2) r Out: [1] 1 2 3 1 2 3
او تكرار “Mohammed” ثلاث مرات كما يلي:
In: r=rep("Mohammed",3) r Out: [1] "Mohammed" "Mohammed" "Mohammed"
خامساً، المقاييس الإحصائية لمتجه x يمكن تلخيصها كما يلي:
المقياس | الكود |
المتوسط الحسابي | mean(x) |
الانحراف المعياري | sd(x) |
التباين | var(x) |
اكبر قيمة | max(x) |
أصغر قيمة | min(x) |
الوسيط | median(x) |
المدى | range(x) |
التقسيم | quantile(x,p), 0<p<1 |
ملاحظة: لعرض بعض ملخص الإحصائيات يمكن استخدام :
In:
summary(x)
سادساً: تحميل وتفعيل المكتبات او الحزم (packages):
الدالة | الوصف |
install.packages(“xxx”) | تحميل حزمة xxx |
library(xxx) | تفعيل حزمة xxx |