كيفية استخدام الدالة n() في r (مع أمثلة)
يمكنك استخدام الدالة n() من حزمة dplyr في R لحساب عدد الملاحظات في المجموعة.
فيما يلي ثلاث طرق شائعة لاستخدام هذه الميزة عمليًا:
الطريقة الأولى: استخدم n() لحساب الملاحظات حسب المجموعة
df %>%
group_by(group_variable) %>%
summarize(count = n())
الطريقة الثانية: استخدم n() لإضافة عمود يعرض الملاحظات حسب المجموعة
df %>%
group_by(group_variable) %>%
mutate(count = n())
الطريقة الثالثة: استخدم n() للتصفية بناءً على الملاحظات حسب المجموعة
df %>%
group_by(group_variable) %>%
filter(n() > 15 )
توضح الأمثلة التالية كيفية استخدام كل طريقة عمليا مع إطار البيانات التالي في R الذي يحتوي على معلومات حول لاعبي كرة السلة المختلفين:
#create data frame df <- data. frame (team=c('A', 'A', 'A', 'B', 'B', 'C'), points=c(22, 25, 25, 20, 29, 13), assists=c(10, 12, 9, 4, 11, 10), rebounds=c(9, 8, 5, 10, 14, 12)) #view data frame df team points assists rebounds 1 A 22 10 9 2 A 25 12 8 3 to 25 9 5 4 B 20 4 10 5 B 29 11 14 6 C 13 10 12
مثال 1: استخدم n() لحساب الملاحظات حسب المجموعة
يوضح التعليمة البرمجية التالية كيفية استخدام الدالة n() مع الدالة summarise() لحساب عدد الملاحظات لكل فريق :
library (dplyr) #count number of observations by team df %>% group_by(team) %>% summarize(count = n()) # A tibble: 3 x 2 team count 1 to 3 2 B 2 3 C 1
ومن النتيجة يمكننا أن نرى:
- يظهر الفريق أ 3 مرات
- يظهر الفريق B مرتين
- يظهر الفريق C مرة واحدة
مثال 2: استخدم n() لإضافة عمود يعرض الملاحظات حسب المجموعة
يوضح الكود التالي كيفية استخدام الدالة n() مع الدالة mutate() لإضافة عمود إلى إطار التاريخ يحتوي على عدد الملاحظات لكل فريق :
library (dplyr) #add new column that shows number of observations by team df %>% group_by(team) %>% mutate(count = n()) # A tibble: 6 x 5 # Groups: team [3] team points assists rebounds count 1 to 22 10 9 3 2 to 25 12 8 3 3 to 25 9 5 3 4 B 20 4 10 2 5 B 29 11 14 2 6 C 13 10 12 1
يحتوي العمود الجديد المسمى العدد على عدد الفرق لكل صف في إطار البيانات.
مثال 3: استخدم n() للتصفية بناءً على الملاحظات حسب المجموعة
يوضح التعليمة البرمجية التالية كيفية استخدام الدالة n() مع الدالة filter() لتصفية إطار البيانات لإظهار الصفوف التي يظهر فيها الفريق أكثر من مرة فقط:
library (dplyr) #filter rows where team count is greater than 1 df %>% group_by(team) %>% filter(n() > 1 ) # A tibble: 5 x 4 # Groups: team [2] team points assists rebounds 1 A 22 10 9 2 A 25 12 8 3 to 25 9 5 4 B 20 4 10 5 B 29 11 14
لاحظ أن إطار البيانات الناتج يحتوي فقط على صفوف يكون فيها الفريق “أ” أو “ب”، لأن هذه هي الفرق الوحيدة التي يزيد عددها عن واحد.
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية استخدام الوظائف الشائعة الأخرى في R:
كيفية استخدام الدالة عبر () في dplyr
كيفية استخدام وظيفة relocate() في dplyr
كيفية استخدام وظيفة الشريحة () في dplyr