كيفية العثور على القيمة القصوى لكل مجموعة في r


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

يشرح هذا البرنامج التعليمي كيفية القيام بذلك باستخدام إطار البيانات التالي:

 #create data frame
df <- data.frame(team = c('A', 'A', 'A', 'B', 'B', 'B', 'B'),
                 position = c('G', 'F', 'F', 'G', 'G', 'G', 'F'),
                 points = c(12, 15, 19, 22, 34, 34, 39))

#view data frame
df

  team position points
1 AG 12
2 AF15
3 FY 19
4 BG 22
5 BG 34
6 BG 34
7 BF 39

مثال 1: أوجد الحد الأقصى للقيمة لكل مجموعة

يوضح الكود التالي كيفية العثور على الحد الأقصى للقيمة لكل فريق لكل منصب:

 library(dplyr)

#find max value by team and position
df %>%
  group_by (team, position) %>%
  summarize (max = max(points, na.rm= TRUE ))

# A tibble: 4 x 3
# Groups: team [?]
  team position max
      
1AF 19.0
2 AG 12.0
3 BF 39.0
4 BG 34.0

المثال 2: إرجاع الصفوف التي تحتوي على الحد الأقصى للقيمة لكل مجموعة

يوضح التعليمة البرمجية التالية كيفية إرجاع الصفوف التي تحتوي على الحد الأقصى للقيمة لكل فريق ولكل منصب:

 library(dplyr)

#find rows that contain max points by team and position
df %>%
  group_by (team, position) %>%
  filter (points == max(points, na.rm= TRUE ))

# A tibble: 5 x 3
# Groups: team, position [4]
  team position points
       
1 AG 12.0
2AF 19.0
3 BG 34.0
4 BG 34.0
5BF 39.0

المثال 3: إرجاع صف واحد يحتوي على الحد الأقصى للقيمة لكل مجموعة

في المثال السابق، كان هناك لاعبان حصلا على أكبر عدد من النقاط في الفريق A وكلاهما في المركز G. إذا كنت تريد فقط إعادة اللاعب الأول صاحب القيمة القصوى إلى المجموعة، فيمكنك استخدام الشريحة( ) وظيفة. تعمل على النحو التالي:

 library(dplyr)

#find rows that contain max points by team and position
df %>%
  group_by (team, position) %>%
  slice (which.max(points))

# A tibble: 4 x 3
# Groups: team, position [4]
  team position points
       
1AF 19.0
2 AG 12.0
3 BF 39.0
4 BG 34.0

مصادر إضافية

الدليل الكامل: كيفية تجميع البيانات وتلخيصها في R
كيفية تصفية الصفوف في R
كيفية إزالة الخطوط المكررة في R

Add a Comment

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