كيفية استخدام 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

Add a Comment

ایمئیل یایینلانمایاجاق ایسته‎نیله‎ن بوشلوقلار خاللانمیشدیر *