وظيفة rbind() في R – ربط الصفوف بسهولة

الربط أو دمج الصفوف سهل للغاية باستخدام وظيفة 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