كيفية استخدام مشغل الأنابيب في r (مع أمثلة)
يمكنك استخدام عامل توجيه الإخراج ( %>% ) في R “لربط” سلسلة من العمليات معًا.
يتم استخدام هذا العامل بشكل شائع مع حزمة dplyr في R لتنفيذ سلسلة من العمليات على إطار البيانات.
بناء الجملة الأساسي لمشغل الأنابيب هو:
df %>%
do_this_operation %>%
then_do_this_operation %>%
then_do_this_operation ...
يقوم مشغل الأنابيب ببساطة بتمرير نتائج عملية واحدة إلى العملية التالية الموجودة أسفلها.
تتمثل ميزة استخدام مشغل الأنابيب في أنه يجعل قراءة الكود سهلة للغاية.
توضح الأمثلة التالية كيفية استخدام مشغل الأنابيب في سيناريوهات مختلفة مع مجموعة بيانات mtcars المضمنة في R.
#view first six rows of mtcars dataset
head(mtcars)
mpg cyl disp hp drat wt qsec vs am gear carb
Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
Valiant 18.1 6 225 105 2.76 3,460 20.22 1 0 3 1
مثال 1: استخدم عامل توجيه الإخراج لتلخيص متغير
يوضح التعليمة البرمجية التالية كيفية استخدام مشغل الأنابيب ( %>% ) للتجميع حسب متغير cyl ثم تلخيص متوسط قيمة متغير mpg :
library (dplyr)
#summarize mean mpg grouped by cyl
mtcars %>%
group_by(cyl) %>%
summarize(mean_mpg = mean(mpg))
# A tibble: 3 x 2
cyl mean_mpg
1 4 26.7
2 6 19.7
3 8 15.1
ومن النتيجة يمكننا أن نرى:
- متوسط قيمة ميل لكل جالون للسيارات التي تبلغ قيمة أسطواناتها 4 هو 26.7 .
- متوسط قيمة ميل لكل جالون للسيارات التي تبلغ قيمة أسطواناتها 6 هو 19.7 .
- متوسط قيمة ميل لكل جالون للسيارات التي تبلغ قيمة أسطواناتها 8 هو 15.1 .
لاحظ كيف يجعل مشغل الأنابيب أيضًا تفسير الكود أسهل.
في الأساس يقول:
- خذ إطار بيانات mtcars .
- قم بتجميعها حسب المتغير cyl .
- ثم قم بتلخيص متوسط قيمة المتغير ميلا في الغالون .
المثال 2: استخدم عامل توجيه الإخراج لتجميع وتلخيص متغيرات متعددة
يوضح التعليمة البرمجية التالية كيفية استخدام مشغل الأنابيب ( %>% ) للتجميع حسب متغيرات cyl و am ، ثم تلخيص متوسط متغير mpg والانحراف المعياري للمتغير hp :
library (dplyr)
#summarize mean mpg and standard dev of hp grouped by cyl and am
mtcars %>%
group_by(cyl, am) %>%
summarize(mean_mpg = mean(mpg),
sd_hp = sd(hp))
# A tibble: 6 x 4
# Groups: cyl[3]
cyl am mean_mpg sd_hp
1 4 0 22.9 19.7
2 4 1 28.1 22.7
3 6 0 19.1 9.18
4 6 1 20.6 37.5
5 8 0 15.0 33.4
6 8 1 15.4 50.2
ومن النتيجة يمكننا أن نرى:
- بالنسبة للسيارات التي تبلغ قيمة أسطواناتها 4 وقيمة AM 0، فإن متوسط قيمة ميل لكل جالون هو 22.9 والانحراف المعياري لقيمة حصان هو 19.7 .
- بالنسبة للسيارات التي تبلغ قيمة أسطواناتها 4 وقيمة am 1، فإن متوسط قيمة ميل لكل جالون هو 28.1 والانحراف المعياري لقيمة حصان هو 22.7 .
وما إلى ذلك وهلم جرا.
مرة أخرى، لاحظ كيف أن مشغل الأنابيب يجعل تفسير الكود أسهل.
في الأساس يقول:
- خذ إطار بيانات mtcars .
- قم بتجميعها حسب المتغيرات cyl و am .
- ثم قم بتلخيص القيمة المتوسطة لمتغير ميلا في الغالون والانحراف المعياري لمتغير حصان .
مثال 3: استخدم عامل توجيه الإخراج لإنشاء متغيرات جديدة
يوضح التعليمة البرمجية التالية كيفية استخدام عامل توجيه الإخراج ( %>% ) مع وظيفة التحويل في حزمة dplyr لإنشاء متغيرين جديدين في إطار بيانات mtcars:
library (dplyr)
#add two new variables in mtcars
new_mtcars <- mtcars %>%
mutate(mpg2 = mpg*2,
mpg_root = sqrt(mpg))
#view first six rows of new data frame
head(new_mtcars)
mpg cyl disp hp drat wt qsec vs am gear carb mpg2 mpg_root
1 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4 42.0 4.582576
2 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4 42.0 4.582576
3 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1 45.6 4.774935
4 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1 42.8 4.626013
5 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2 37.4 4.324350
6 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1 36.2 4.254409
ومن النتيجة يمكننا أن نرى:
- يحتوي عمود mpg2 الجديد على القيم من عمود mpg مضروبة في 2.
- يحتوي عمود mpg_root الجديد على الجذر التربيعي للقيم الموجودة في عمود mpg .
مرة أخرى، لاحظ كيف أن مشغل الأنابيب يجعل تفسير الكود أسهل.
في الأساس يقول:
- خذ إطار بيانات mtcars .
- قم بإنشاء عمود جديد يسمى mpg2 وعمود جديد يسمى mpg_root .
ذات صلة: كيفية استخدام وظيفة transmute() في dplyr
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية استخدام الوظائف الشائعة الأخرى في R:
كيفية استخدام عامل التلدة (~) في R
كيفية استخدام عامل علامة الدولار ($) في R
كيفية استخدام عامل التشغيل “NOT IN” في R
كيفية استخدام عامل التشغيل %in% في R