كيفية استخدام ungroup() في dplyr (مع أمثلة)
يمكنك استخدام الدالة ungroup() في dplyr لفك تجميع الصفوف بعد استخدام الدالة group_by() لتلخيص متغير واحد لكل مجموعة.
يوضح المثال التالي كيفية استخدام هذه الوظيفة عمليًا.
مثال: كيفية استخدام ungroup() في dplyr
لنفترض أن لدينا إطار البيانات التالي في R:
#create data frame
df <- data. frame (team=c('A', 'A', 'A', 'B', 'B', 'B'),
dots=c(14, 18, 22, 26, 36, 34),
assists=c(5, 4, 4, 8, 7, 3))
#view data frame
df
team points assists
1 to 14 5
2 to 18 4
3 to 22 4
4 B 26 8
5 B 36 7
6 B 34 3
لنفترض الآن أننا استخدمنا الكود التالي لحساب متوسط قيمة النقاط ، مجمعة حسب الفريق :
library (dplyr)
#calculate mean of points, grouped by team
df_new <- df %>%
group_by(team) %>%
summarize(mean_points = mean(points)) %>%
A group()
#view results
df_new
# A tibble: 2 x 2
team mean_points
1 to 18
2 B 32
باستخدام بناء الجملة هذا يمكننا حساب متوسط قيمة النقاط المجمعة حسب الفريق ، لكننا فقدنا عمود التمريرات الحاسمة .
للاحتفاظ بعمود المساعدين ، يمكننا استخدام mutate() بدلاً من Summary() ونستمر في استخدام ungroup() في النهاية:
library (dplyr)
#calculate mean of points, grouped by team
df_new <- df %>%
group_by(team) %>%
mutate(mean_points = mean(points)) %>%
A group()
#view results
df_new
# A tibble: 6 x 4
team points assists mean_points
1 A 14 5 18
2 A 18 4 18
3 A 22 4 18
4 B 26 8 32
5 B 36 7 32
6 B 34 3 32
هذه المرة نحن قادرون على الاحتفاظ بعمود التمريرات الحاسمة وباستخدام وظيفة mutate() قمنا ببساطة بإضافة عمود جديد يسمى Mean_points الذي يعرض متوسط قيمة النقاط لكل فريق.
وبما أننا استخدمنا أيضًا الدالة ungroup() ، فيمكننا إجراء العمليات الحسابية على إطار البيانات الجديد هذا دون القلق بشأن تأثر العمليات الحسابية بالمتغيرات المجمعة.
إذا لم نستخدم الدالة ungroup() ، فستظل الصفوف الموجودة في إطار البيانات مجمعة معًا، مما قد يكون له عواقب غير مقصودة عندما نقوم بإجراء حسابات أخرى لاحقًا.
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية تنفيذ المهام الشائعة الأخرى في R:
كيفية تصفية القيم الفريدة باستخدام dplyr
كيفية التصفية حسب شروط متعددة باستخدام dplyr
كيفية حساب عدد التكرارات في الأعمدة في R