الربط أو دمج الصفوف سهل للغاية باستخدام وظيفة rbind() في لغة البرمجة R.
تعني rbind() ربط الصفوف. ببساطة، يتم دمج صفوف متعددة لتشكيل دُفعة واحدة. قد يتضمن ذلك دمج إطاري بياناتين، متجهين، وأكثر.
سيتحدث هذا المقال عن استخدامات وتطبيقات وظيفة rbind() في برمجة R.
دون إضاعة الكثير من الوقت، دعونا ننتقل إلى الموضوع!!!
بناء جملة وظيفة rbind()
rbind(): تستخدم وظيفة rbind أو وظيفة ربط الصفوف لربط أو دمج مجموعات متعددة من الصفوف معًا.
rbind(x,x1)
حيث:
- X = the input data.
- X1 = البيانات التي تحتاج إلى الربط.
فكرة ربط الصفوف باستخدام rbind()
فكرة ربط أو دمج صفوف متعددة إطارات البيانات مفيدة للغاية في التلاعب بالبيانات.
ستوضح الرسم البياني أدناه لك الفكرة بشكل واضح حول كيفية عمل وظيفة rbind().
يمكنك رؤية كيف سترتبط/تجمع صفوف إطارات بيانات مختلفة باستخدام وظيفة rbind().
تنفيذ وظيفة rbind() في لغة البرمجة R
كما تعلم، تستخدم وظيفة rbind() في لغة البرمجة R لربط الصفوف من مجموعات بيانات مختلفة.
في هذا القسم، دعنا نحاول بناء إطار بيانات بسيط وربطها باستخدام وظيفة rbind().
#إنشاء إطار بيانات
Student_details<-c("Mark","John","Fredrick","Floyd","George")
Student_class<-c("High school","College","High school","High school","College")
df1<-data.frame(Student_class,Student_details)
df1
سيقوم الكود أعلاه ببناء إطار بيانات بسيط يقدم تفاصيل الطلاب وأسمائهم.
Student_class Student_details
1 High school Mark
2 College John
3 High school Fredrick
4 High school Floyd
5 College George
حسنًا، الآن لدينا إطار بيانات من 5 صفوف. دعونا ننشئ إطار بيانات آخر.
#إنشاء إطار بيانات
Student_details<-c("Bracy","Evin")
Student_class<-c("High school","College")
Student_rank<-c("A","A+")
df2<-data.frame(Student_class,Student_details,Student_rank)
df2
Student_class Student_details
1 High school Bracy
2 College Evin
حسنًا، الآن لدينا 2 إطار بيانات بعدد صفوف مختلفة (df1 و df2). دعونا نستخدم وظيفة rbind() لربط الإطارين البيانيين السابقين إلى إطار بيانات واحد.
دعونا نرى كيف يعمل ذلك.
لن تصدق أن عملية الربط بأكملها ستتطلب سطرًا واحدًا فقط من الكود.
#يربط الصفوف من اثنين من إطارات البيانات المدخلة
rbind(df1,df2)
Student_class Student_details
1 High school Mark
2 College John
3 High school Fredrick
4 High school Floyd
5 College George
6 High school Bracy
7 College Evin
سيكون الإطار البياني الناتج هو نسخة مربوطة من كل من إطارات البيانات كما هو موضح في الإخراج أعلاه.
ربط إطاري بيانات ذوي طول غير متساوٍ باستخدام وظيفة bind()
حسنًا، في القسم السابق، قمنا بدمج مجموعتي الصفوف معًا.
في هذا القسم، سنقوم بدمج مجموعتي بيانات معًا باستخدام وظيفة rbind في R.
# ينشئ إطار البيانات
Student_details<-c("Mark","John","Fredrick","Floyd","George")
Student_class<-c("High school","College","High school","High school","College")
df1<-data.frame(Student_class,Student_details)
df1
Student_class Student_details
1 High school Mark
2 College John
3 High school Fredrick
4 High school Floyd
5 College George
# ينشئ إطار البيانات
Student_details<-c("Bracy","Evin")
Student_class<-c("High school","College")
Student_rank<-c("A","A+")
df2<-data.frame(Student_class,Student_details,Student_rank)
df2
Student_class Student_details Student_rank
1 High school Bracy A
2 College Evin A+
rbind(df1,df2)
Error in rbind(deparse.level, ...) :
numbers of columns of arguments do not match
انتظر، ماذا حدث؟ لماذا الوظيفة ترمي بخطأ؟
إذا قرأت الأسطر في الخطأ، ستجد أنه يُشير إلى أن عدد الأعمدة غير متطابق.
لدينا ٢ عمود في ‘df1’ و ٣ أعمدة في ‘df2’.
لا داعي للقلق! لدينا الوظيفة bind_rows() التي ستساعدنا في هذه الحالات.
وظيفة bind_rows() لربط مجموعات بيانات غير متساوية
bind_rows() هي وظيفة تنتمي إلى حزمة dplyr. نحتاج إلى استيراد حزمة dplyr أولاً لتنفيذ هذه الوظيفة.
نحن نستخدم نفس إطارات البيانات الموجودة في القسم أعلاه أي df1 و df2. دعنا نرى كيف يعمل.
#تثبيت الحزم المطلوبة
install.packages('dplyr')
#استيراد المكتبات
library(dplyr)
#ربط الصفوف
bind_rows(df1,df2)
Student_class Student_details Student_rank
1 High school Mark <NA>
2 College John <NA>
3 High school Fredrick <NA>
4 High school Floyd <NA>
5 College George <NA>
6 High school Bracy A
7 College Evin A+
يمكنك الآن أن ترى أن وظيفة bind_rows قد جمعت هذين البيانات غير المتساويتين فيما يتعلق بالأعمدة. ستتم وضع علامات على المساحات الفارغة على أنها <NA>.
ربط مجموعتي بيانات باستخدام الوظيفة rbind()
في هذا القسم، سننظر في ربط اثنين من مجموعات البيانات بأكملها في R.
لنرى كيف يعمل.
سنستخدم مجموعة بيانات BOD حيث أن لديها فقط 6 صفوف ويمكنك أيضًا مراقبة الصفوف المرتبطة بسهولة.
#يقوم بربط مجموعتي بيانات
rbind(BOD,BOD)
Time demand
1 1 8.3
2 2 10.3
3 3 19.0
4 4 16.0
5 5 15.6
6 7 19.8
---------------
7 1 8.3
8 2 10.3
9 3 19.0
10 4 16.0
11 5 15.6
12 7 19.8
مجموعة بيانات BOD بها 6 صفوف. نظرًا لأننا نمرر البيانات مرتين، ستقوم وظيفة rbind() بربط الصفوف نفسها كما هو موضح أعلاه.
وكذلك لا تنسى أن لديك أيضًا وظيفة bind_rows().
#يقوم بربط مجموعتين مختلفتين من البيانات
bind_rows(BOD,women)
Time demand height weight
1 1 8.3 NA NA
2 2 10.3 NA NA
3 3 19.0 NA NA
4 4 16.0 NA NA
5 5 15.6 NA NA
6 7 19.8 NA NA
7 NA NA 58 115
8 NA NA 59 117
9 NA NA 60 120
10 NA NA 61 123
11 NA NA 62 126
12 NA NA 63 129
13 NA NA 64 132
14 NA NA 65 135
15 NA NA 66 139
16 NA NA 67 142
17 NA NA 68 146
18 NA NA 69 150
19 NA NA 70 154
20 NA NA 71 159
21 NA NA 72 164
هذه هي الأمثلة التي توضح بوضوح عمل وتطبيقات وظائف bind() و bind_rows.
I hope these illustrations helped you in understanding these functions.
ربط مجموعات عدة من الصفوف في R
في هذا القسم، سنركز على ربط مجموعات صفوف متعددة (أكثر من 2) باستخدام الدالة rbind(). دعنا نرى كيف تعمل.
# يقوم بربط صفوف 3 مجموعات بيانات
bind_rows(BOD,women,ToothGrowth)
Time demand height weight len supp dose
1 1 8.3 NA NA NA <NA> NA
2 2 10.3 NA NA NA <NA> NA
3 3 19.0 NA NA NA <NA> NA
4 4 16.0 NA NA NA <NA> NA
5 5 15.6 NA NA NA <NA> NA
6 7 19.8 NA NA NA <NA> NA
7 NA NA 58 115 NA <NA> NA
8 NA NA 59 117 NA <NA> NA
9 NA NA 60 120 NA <NA> NA
10 NA NA 61 123 NA <NA> NA
11 NA NA 62 126 NA <NA> NA
12 NA NA 63 129 NA <NA> NA
13 NA NA 64 132 NA <NA> NA
14 NA NA 65 135 NA <NA> NA
15 NA NA 66 139 NA <NA> NA
16 NA NA 67 142 NA <NA> NA
17 NA NA 68 146 NA <NA> NA
18 NA NA 69 150 NA <NA> NA
19 NA NA 70 154 NA <NA> NA
20 NA NA 71 159 NA <NA> NA
لاحظ كيف تم ربط أو دمج جميع مجموعات البيانات الثلاث بواسطة الدالة bind_rows() في R. هذه هي جمالية الدالة bind_rows().
هذه الدالتان لديهما تطبيقات لا حصر لها في التلاعب بالبيانات في برمجة R.
الختام
الدالة rbind() في R والدالة bind_rows() هي الدوال الأكثر فائدة عندما يتعلق الأمر بتلاعب البيانات.
يمكنك بسهولة ربط إطاري بيانات ذات نفس عدد الأعمدة باستخدام دالة rbind().
بنفس الطريقة، إذا كانت إطارات البيانات تحتوي على عدد غير متساوٍ من الأعمدة، يمكنك استخدام الدالة bind_rows() بالاضافة الى حزمة dplyr.
هذا كل شيء للآن، ربط سعيد!!!
قراءة المزيد: وثائق R
Source:
https://www.digitalocean.com/community/tutorials/rbind-function-r