Dplyr: كيفية تلخيص البيانات مع الاحتفاظ بجميع الأعمدة


عند استخدام الدالة summarise() في dplyr ، ستتم إزالة أي متغيرات غير مضمنة في الدالة summarise() أو group_by() تلقائيًا.

ومع ذلك، يمكنك استخدام الدالة mutate() لتلخيص البيانات مع الاحتفاظ بجميع الأعمدة في إطار البيانات.

يوضح المثال التالي كيفية استخدام هذه الوظيفة عمليًا.

مثال: تلخيص البيانات مع الاحتفاظ بجميع الأعمدة باستخدام dplyr

لنفترض أن لدينا إطار البيانات التالي الذي يحتوي على معلومات حول لاعبي كرة السلة المختلفين:

 #create data frame
df <- data. frame (team=rep(c(' A ', ' B ', ' C '), each= 3 ),
                 points=c(4, 9, 8, 12, 15, 14, 29, 30, 22),
                 assists=c(3, 3, 2, 5, 8, 10, 4, 5, 12))

#view data frame
df

  team points assists
1 to 4 3
2 to 9 3
3 to 8 2
4 B 12 5
5 B 15 8
6 B 14 10
7 C 29 4
8 C 30 5
9 C 22 12

يمكننا استخدام الصيغة التالية لتلخيص متوسط النقاط المسجلة لكل فريق :

 library (dplyr)

#summarize mean points values by team
df %>%
  group_by(team) %>%
  summarize(mean_pts = mean(points))

# A tibble: 3 x 2
  team mean_pts
      
1 to 7  
2 B 13.7
3 C 27

يعرض العمود المسمى Mean_pts متوسط النقاط التي سجلها كل فريق.

ومن النتيجة يمكننا أن نرى:

  • متوسط النقاط التي أحرزها لاعبو الفريق أ هو 7 .
  • متوسط النقاط التي سجلها لاعبو الفريق B هو 13.7 .
  • متوسط النقاط التي سجلها لاعبو الفريق ج هو 27 .

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

يمكننا استخدام الصيغة التالية مع الدالة mutate() للقيام بذلك:

 library (dplyr)

#summarize mean points values by team and keep all columns
df %>%
  group_by(team) %>%
  mutate(mean_pts = mean(points)) %>%
  A group()

# A tibble: 9 x 4
  team points assists mean_pts
           
1 to 4 3 7  
2 to 9 3 7  
3 to 8 2 7  
4 B 12 5 13.7
5 B 15 8 13.7
6 B 14 10 13.7
7 C 29 4 27  
8 C 30 5 27  
9 C 22 12 27

باستخدام الدالة mutate() ، يمكننا إنشاء عمود جديد يسمى Mean_pts الذي يلخص متوسط النقاط المسجلة لكل فريق مع الاحتفاظ بجميع الأعمدة الأخرى من إطار البيانات الأصلي.

مصادر إضافية

تشرح البرامج التعليمية التالية كيفية تنفيذ المهام الشائعة الأخرى في dplyr:

dplyr: كيفية تحويل متغير إذا كان العمود يحتوي على سلسلة
dplyr: كيفية تغيير مستويات العامل باستخدام mutate()
dplyr: كيفية إضافة أعمدة متعددة

Add a Comment

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