كيفية استخدام وظيفة dcast الخاصة بـ data.table في r


يمكنك استخدام وظيفة dcast لحزمة data.table في R لإعادة تشكيل إطار البيانات من تنسيق طويل إلى تنسيق واسع.

تعتبر هذه الوظيفة مفيدة بشكل خاص عندما تريد تلخيص متغيرات محددة في إطار بيانات، مجمعة حسب متغيرات أخرى.

توضح الأمثلة التالية كيفية استخدام وظيفة dcast عمليًا مع إطار البيانات التالي في R:

 library (data.table)

#create data frame
df <- data. frame (team=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'),
                 position=c('G', 'G', 'F', 'F', 'G', 'G', 'F', 'F'),
                 points=c(18, 13, 10, 12, 16, 25, 24, 31),
                 assists=c(9, 8, 8, 5, 12, 15, 10, 7))

#convert data frame to data table
dt <- setDT(df)

#view data table
dt

   team position points assists
1: AG 18 9
2: AG 13 8
3:AF 10 8
4:AF 12 5
5: BG 16 12
6: BG 25 15
7: BF 24 10
8: BF 31 7

مثال 1: حساب مقياس أحد المتغيرات، مجمعًا حسب المتغيرات الأخرى

يوضح التعليمة البرمجية التالية كيفية استخدام الدالة dcast لحساب متوسط قيمة النقطة ، مجمعة حسب متغيرات الفريق والموضع :

 library (data.table)

#calculate mean points value by team and position
dt_new <- dcast(dt,
                team + position ~.,
                fun. aggregate = mean, 
                value. var = ' points ')

#view results
dt_new

   team position.
1:AF 11.0
2: AG 15.5
3: BF 27.5
4: BG 20.5

المثال 2: حساب مقاييس متعددة لمتغير، مجمعة حسب متغيرات أخرى

يوضح التعليمة البرمجية التالية كيفية استخدام وظيفة dcast لحساب متوسط قيمة النقطة والحد الأقصى لقيمة النقطة ، مجمعة حسب متغيرات الفريق والموضع :

 library (data.table)

#calculate mean and max points values by team and position
dt_new <- dcast(dt,
                team + position ~.,
                fun. aggregate = list(mean, max), 
                value. var = ' points ')

#view results
dt_new

   team position points_mean points_max
1:AF 11.0 12
2: AG 15.5 18
3: BF 27.5 31
4: BG 20.5 25

مثال 3: حساب المقياس لمتغيرات متعددة، مجمعة حسب متغيرات أخرى

يوضح التعليمة البرمجية التالية كيفية استخدام وظيفة dcast لحساب متوسط قيمة النقطة ومتوسط قيمة المساعدة ، مجمعة حسب متغيرات الفريق والموضع :

 library (data.table)

#calculate mean and max points values by team and position
dt_new <- dcast(dt,
                team + position ~.,
                fun. aggregate = mean, 
                value. var = c(' points ', ' assists '))

#view results
dt_new

   team position points assists
1:AF 11.0 6.5
2: AG 15.5 8.5
3: BF 27.5 8.5
4: BG 20.5 13.5

مصادر إضافية

توفر البرامج التعليمية التالية معلومات إضافية حول جداول البيانات:

data.table مقابل إطار البيانات في R: ثلاثة اختلافات رئيسية
كيفية تصفية data.table في R
كيفية استخدام rbindlist في R لإنشاء جدول بيانات من عدة

Add a Comment

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