كيفية استخدام rbindlist في r لإنشاء جدول بيانات من عدة
يمكن استخدام الدالة rbindlist() في لغة R لإنشاء جدول بيانات من قائمة تضم العديد من كائنات data.table أو data.frame.
تستخدم هذه الوظيفة بناء الجملة الأساسي التالي:
rbindlist(l, use. names ="check", fill= FALSE , idcol= NULL )
ذهب:
- l : قائمة تحتوي على كائنات data.table أو data.frame أو list.
- use.names : يرتبط TRUE بأسماء الأعمدة. FALSE يرتبط بالموضع.
- fill : TRUE يملأ القيم المفقودة بـ NA.
- idcol : ينشئ عمودًا يشير إلى عنصر القائمة الذي تأتي منه هذه الصفوف.
يوضح المثال التالي كيفية استخدام هذه الوظيفة عمليًا.
مثال: استخدم rbindlist لإنشاء جدول بيانات
لنفترض أن لدينا القائمة التالية من كائنات data.table وdata.frame في R:
library (data.table) #create data frames and data tables data1 <- data. table (team=c('A', 'B', 'C'), dots=c(22, 27, 38)) data2 <- data. table (team=c('D', 'E', 'F'), dots=c(22, 14, 20)) data3 <- data. frame (team=c('G', 'H', 'I'), dots=c(11, 15, 18)) #view data frames and data tables print (data1) print (data2) print (data3) team points 1: At 22 2:B27 3: C 38 team points 1:D22 2:E14 3:F20 team points 1 G 11 2:15 a.m. 3 I 18
يمكننا استخدام الدالة rbindlist() التالية لربط قائمة كائنات data.table وdata.frame في جدول بيانات واحد:
#define list of objects to bind together data_list <- list(data1, data2, data3) #bind together list of objects big_data <- rbindlist(data_list) #view result big_data team points 1: At 22 2:B27 3: C 38 4:D22 5:E14 6:F20 7:G 11 8:15 a.m. 9: I 18
والنتيجة هي كائن data.table يحتوي على تسعة صفوف تتكون من صفوف من قائمة الكائنات التي قدمناها.
يمكننا أيضًا استخدام الدالة class() للتحقق من أن النتيجة هي بالفعل كائن data.table:
#view class of resulting object
class(big_data)
[1] "data.table" "data.frame"
نرى أن النتيجة هي بالفعل كائن data.table.
ميزة استخدام rbindlist
سيكون البديل لاستخدام rbindlist هو استخدام do.call مع الدالة rbind في الأساس R:
#use rbind to bind together list of objects do. call (" rbind ", data_list) team points 1: At 22 2:B27 3: C 38 4:D22 5:E14 6:F20 7:G 11 8:15 a.m. 9: I 18
ينتج عن هذا الكود نفس النتيجة ولكن اتضح أن rbindlist أسرع بشكل ملحوظ، خاصة بالنسبة لكائنات data.table أو data.frame الكبيرة للغاية.
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية تنفيذ العمليات الشائعة الأخرى في R:
كيفية تحويل جدول إلى إطار بيانات في R
كيفية إضافة صفوف إلى إطار البيانات في R
كيفية تقسيم إطار البيانات في R