كيفية فرز المتغيرات حسب المجموعة باستخدام dplyr
يمكنك استخدام بناء الجملة الأساسي التالي لتجميع المتغيرات في dplyr:
df %>% arrange (group_var, numeric_var) %>% group_by (group_var) %>% mutate (rank = rank(numeric_var))
توضح الأمثلة التالية كيفية استخدام بناء الجملة هذا عمليًا مع إطار البيانات التالي:
#create data frame df <- data. frame (team = c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'C', 'C', 'C'), points = c(12, 28, 19, 22, 32, 45, 22, 28, 13, 19), rebounds = c(5, 7, 7, 12, 11, 4, 10, 7, 8, 8)) #view data frame df team points rebounds 1 to 12 5 2 to 28 7 3 to 19 7 4 A 22 12 5 B 32 11 6 B 45 4 7 B 22 10 8 C 28 7 9 C 13 8 10 C 19 8
مثال 1: الترتيب بترتيب تصاعدي
يوضح الكود التالي كيفية فرز النقاط التي سجلها اللاعبون بترتيب تصاعدي، مجمعة حسب الفريق:
library (dplyr) #rank points scored, grouped by team df %>% arrange (team, points) %>% group_by (team) %>% mutate (rank = rank(points)) # A tibble: 10 x 4 # Groups: team [3] team points rebounds rank 1 A 12 5 1 2 A 19 7 2 3 A 22 12 3 4 A 28 7 4 5 B 22 10 1 6 B 32 11 2 7 B 45 4 3 8 C 13 8 1 9 C 19 8 2 10 C 28 7 3
مثال 2: الترتيب بترتيب تنازلي
يمكننا أيضًا تصنيف النقاط المسجلة بترتيب تنازلي حسب المجموعة، باستخدام إشارة السالب داخل الدالة Rank() :
library (dplyr) #rank points scored in reverse, grouped by team df %>% arrange (team, points) %>% group_by (team) %>% mutate (rank = rank(-points)) # A tibble: 10 x 4 # Groups: team [3] team points rebounds rank 1 to 12 5 4 2 A 19 7 3 3 A 22 12 2 4 A 28 7 1 5 B 22 10 3 6 B 32 11 2 7 B 45 4 1 8 C 13 8 3 9 C 19 8 2 10 C 28 7 1
كيفية التعامل مع العلاقات في الترتيب
يمكننا استخدام الوسيطة Tie.method لتحديد كيفية التعامل مع الروابط عند ترتيب القيم الرقمية.
rank(points, ties. method = ' average ')
يمكنك استخدام أحد الخيارات التالية لتحديد كيفية التعامل مع الروابط:
- المتوسط : (افتراضي) يمنح كل عنصر مرتبط متوسط الترتيب (العناصر المصنفة في المركزين الثالث والرابع ستحصل على تصنيف 3.5)
- أولاً : يعين العنصر المرتبط الأول إلى أدنى رتبة (العناصر المصنفة في المركزين الثالث والرابع ستحصل على الرتبتين 3 و 4 على التوالي)
- min : يعين كل عنصر مرتبط إلى أدنى رتبة (العناصر التي تحتل المرتبة الثالثة والرابعة ستحصل على المرتبة 3)
- الحد الأقصى : يعين لكل عنصر مرتبط أعلى رتبة (العناصر التي تحتل المرتبة الثالثة والرابعة ستحصل على المرتبة 4)
- عشوائي : يعين كل عنصر مرتبط برتبة عشوائية (أي من العناصر المرتبطة بالمركزين الثالث والرابع يمكن أن يحصل على أي من الرتبتين)
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية تنفيذ وظائف شائعة أخرى في dplyr:
كيفية تحديد الصف الأول حسب المجموعة باستخدام dplyr
كيفية حساب الترددات النسبية باستخدام dplyr
كيفية إعادة ترميز القيم باستخدام dplyr
كيفية استبدال NA بصفر في dplyr