كيفية استخدام الدالة cross() في dplyr (3 أمثلة)
يمكنك استخدام الدالة cross() من الحزمة dplyr في R لتطبيق التحويل على أعمدة متعددة.
هناك طرق لا حصر لها لاستخدام هذه الميزة، ولكن الطرق التالية توضح بعض الاستخدامات الشائعة:
الطريقة الأولى: تطبيق دالة على أعمدة متعددة
#multiply values in col1 and col2 by 2 df %>% mutate(across(c(col1, col2), function (x) x*2))
الطريقة الثانية: حساب إحصائيات ملخص لأعمدة متعددة
#calculate mean of col1 and col2 df %>% summarise(across(c(col1, col2), mean, na. rm = TRUE ))
الطريقة الثالثة: حساب إحصائيات ملخص متعددة لأعمدة متعددة
#calculate mean and standard deviation for col1 and col2 df %>% summarise(across(c(col1, col2), list(mean=mean, sd=sd), na. rm = TRUE ))
توضح الأمثلة التالية كيفية استخدام كل طريقة مع إطار البيانات التالي:
#create data frame df <- data. frame (conf=c('East', 'East', 'East', 'West', 'West', 'West'), points=c(22, 25, 29, 13, 22, 30), rebounds=c(12, 10, 6, 6, 8, 11)) #view data frame df conf points rebounds 1 East 22 12 2 East 25 10 3 East 29 6 4 West 13 6 5 West 22 8 6 West 30 11
مثال 1: تطبيق دالة على أعمدة متعددة
يوضح الكود التالي كيفية استخدام الدالة cross() لضرب القيم في أعمدة النقاط والارتدادات في 2:
library (dplyr)
#multiply values in points and rebounds columns by 2
df %>%
mutate(across(c(points, rebounds), function (x) x*2))
conf points rebounds
1 East 44 24
2 East 50 20
3 East 58 12
4 West 26 12
5 West 44 16
6 West 60 22
المثال 2: حساب إحصائية ملخصة لأعمدة متعددة
يوضح التعليمة البرمجية التالية كيفية استخدام الدالة cross() لحساب متوسط قيمة أعمدة النقاط والارتدادات :
library (dplyr) #calculate mean value of points an rebounds columns df %>% summarise(across(c(points, rebounds), mean, na. rm = TRUE )) rebound points 1 23.5 8.833333
لاحظ أنه يمكننا أيضًا استخدام الدالة is.numeric لحساب إحصائية ملخصة لجميع الأعمدة الرقمية في إطار البيانات تلقائيًا:
library (dplyr) #calculate mean value for every numeric column in data frame df %>% summarise(across(where(is. numeric ), mean, na. rm = TRUE )) rebound points 1 23.5 8.833333
المثال 3: حساب إحصائيات ملخصة متعددة لأعمدة متعددة
يوضح التعليمة البرمجية التالية كيفية استخدام الدالة cross() لحساب المتوسط والانحراف المعياري لأعمدة النقاط والارتدادات :
library (dplyr) #calculate mean and standard deviation for points and rebounds columns df %>% summarise(across(c(points, rebounds), list(mean=mean, sd=sd), na. rm = TRUE )) points_mean points_sd rebounds_mean rebounds_sd 1 23.5 6.156298 8.833333 2.562551
ملاحظة : يمكنك العثور على الوثائق الكاملة للدالة عبر () هنا .
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية تنفيذ وظائف شائعة أخرى باستخدام dplyr:
كيفية حذف الصفوف باستخدام dplyr
كيفية ترتيب الصفوف باستخدام dplyr
كيفية التصفية حسب شروط متعددة باستخدام dplyr