كيفية ترتيب الصفوف بترتيب مخصص باستخدام dplyr


يمكنك استخدام بناء الجملة الأساسي التالي لترتيب صفوف إطار البيانات بترتيب مخصص باستخدام حزمة dplyr في R:

 library (dplyr)

#arrange rows in custom order based on values in 'team' column
df %>%
  arrange(match(team, c(' C ', ' B ', ' D ', ' A ')), points)

يقوم هذا المثال تحديدًا بترتيب الصفوف بناءً على الترتيب المخصص C، B، D، A لقيم أعمدة الفريق ، ثم وفقًا لقيم أعمدة النقاط بترتيب تصاعدي.

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

مثال: كيفية ترتيب الصفوف بترتيب مخصص باستخدام dplyr

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

 #create data frame
df <- data. frame (team=c('A', 'B', 'A', 'A', 'B', 'D', 'C', 'D', 'D', 'C'),
                 points=c(12, 20, 14, 34, 29, 22, 28, 15, 20, 13))

#view data frame
df

   team points
1 to 12
2 B 20
3 to 14
4 to 34
5 B 29
6 D 22
7 C 28
8 D 15
9 D 20
10 C 13

إذا استخدمنا الدالة الترتيب () لفرز الصفوف بناءً على القيم الموجودة في عمود الفريق ، فبناءً على القيم الموجودة في عمود النقاط ، ستقوم الدالة الترتيب () بفرز الصفوف بناءً على الترتيب الأبجدي الافتراضي :

 library (dplyr)

#arrange rows in ascending order by team, then by points
df %>%
  arrange(team, points)

   team points
1 to 12
2 to 14
3 to 34
4 B 20
5 B 29
6 C 13
7 C 28
8 D 15
9 D 20
10 D 22

يتم سرد الأسطر أبجديًا حسب الفريق ، ثم بترتيب تصاعدي حسب النقاط .

ومع ذلك، لنفترض أننا نريد بدلاً من ذلك ترتيب الخطوط بناءً على الترتيب التالي لقيم الفريق : C، B، D، A.

يمكننا استخدام الدالة match() ضمن الدالة الترتيبية للقيام بذلك:

 library (dplyr)

#arrange rows in custom order based on 'team' column, then by 'points' column
df %>%
  arrange(match(team, c(' C ', ' B ', ' D ', ' A ')), points)

   team points
1 C 13
2 C 28
3 B 20
4 B 29
5 D 15
6 D 20
7 D 22
8 to 12
9 to 14
10 to 34

يتم ترتيب الصفوف بالترتيب المخصص الذي حددناه (ج، ب، د، أ) لعمود الفريق ، ثم حسب عمود النقاط .

ملاحظة رقم 1 : تحصل وظيفة المطابقة على فهرس الصف للقيم الموجودة في عمود الفريق، ثم تكون وظيفة الترتيب قادرة على الفرز بناءً على قيم الفهرس هذه.

ملاحظة رقم 2 : للترتيب من خلال تقليل قيم النقاط، ما عليك سوى استخدام desc(points) بدلاً من ذلك.

مصادر إضافية

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

كيفية تنظيم الصفوف حسب المجموعة باستخدام dplyr
كيفية تصفية القيم الفريدة باستخدام dplyr
كيفية التصفية حسب شروط متعددة باستخدام dplyr

Add a Comment

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