كيفية حساب النسب في r (مع أمثلة)
يمكنك استخدام الطرق التالية لحساب النسبة بين قيم عمودين في R:
الطريقة الأولى: استخدم Base R
#calculate ratio between variable1 and variable2 df$ratio <- df$variable1/df$variable1 #calculate ratio between variable1 and variable2, rounded to 2 decimal places df$ratio <- round(df$variable1/df$variable2, 2 )
الطريقة الثانية: استخدم dplyr
library (dplyr) #calculate ratio between variable1 and variable2 df <- df %>% mutate(ratio = variable1/variable2) #calculate ratio between variable1 and variable2, rounded to 2 decimal places df <- df %>% mutate(ratio = round(variable1/variable2, 2 ))
يشرح هذا البرنامج التعليمي كيفية استخدام كل طريقة عمليا مع إطار البيانات التالي الذي يوضح إجمالي عدد التسديدات التي تم التقاطها ومحاولتها من قبل لاعبي كرة السلة المختلفين:
#create data frame
df <- data. frame (players=c('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'),
makes=c(4, 4, 3, 6, 7, 8, 3, 10),
attempts=c(12, 7, 5, 6, 10, 12, 5, 19))
#view data frame
df
players makes attempts
1 to 4 12
2 B 4 7
3 C 3 5
4 D 6 6
5 E 7 10
6 F 8 12
7 G 3 5
8:10:19 a.m.
مثال 1: حساب النسب باستخدام قاعدة R
الكود التالي يوضح كيفية حساب النسبة بين قيم أعمدة العلامات والمحاولات باستخدام قاعدة R:
#calculate ratio between makes and attempts columns
df$ratio <- df$makes/df$attempts
#view updated data frame
df
players makes attempts ratio
1 A 4 12 0.3333333
2 B 4 7 0.5714286
3 C 3 5 0.6000000
4 D 6 6 1.0000000
5 E 7 10 0.7000000
6 F 8 12 0.6666667
7 G 3 5 0.6000000
8:10:19 AM 0.5263158
نسبة المحاولات إلى المحاولات للاعب الأول هي 4/12 = 0.33 .
بمعنى آخر، قام اللاعب الأول بحوالي 33% من محاولات التسديد.
يمكننا تفسير قيم النسبة لجميع اللاعبين الآخرين بنفس الطريقة.
يمكننا أيضًا استخدام الدالة round() لتقريب قيم النسب إلى عدد معين من المنازل العشرية:
#calculate ratio between makes and attempts columns, rounded to 2 decimal places
df$ratio <- round(df$makes/df$attempts, 2 )
#view updated data frame
df
players makes attempts ratio
1 to 4 12 0.33
2 B 4 7 0.57
3 C 3 5 0.60
4 D 6 6 1.00
5 E 7 10 0.70
6 F 8 12 0.67
7 G 3 5 0.60
8:10:19 0.53
يتم الآن تقريب كل قيمة من القيم الموجودة في عمود النسبة إلى منزلتين عشريتين.
مثال 2: حساب النسب باستخدام dplyr
الكود التالي يوضح كيفية حساب النسبة بين القيم في أعمدة العلامات والمحاولات باستخدام الحزمة dplyr :
library (dplyr)
#add new column that shows ratio of makes to attempts
df <- df %>%
mutate(ratio = makes/attempts)
#view updated data frame
df
players makes attempts ratio
1 A 4 12 0.3333333
2 B 4 7 0.5714286
3 C 3 5 0.6000000
4 D 6 6 1.0000000
5 E 7 10 0.7000000
6 F 8 12 0.6666667
7 G 3 5 0.6000000
8:10:19 AM 0.5263158
يمكننا أيضًا استخدام الدالة round() لتقريب قيم النسب إلى عدد معين من المنازل العشرية:
library (dplyr)
#add new column that shows ratio of makes to attempts, rounded to 2 decimal places
df <- df %>%
mutate(ratio = round(makes/attempts, 2 ))
#view updated data frame
df
players makes attempts ratio
1 to 4 12 0.33
2 B 4 7 0.57
3 C 3 5 0.60
4 D 6 6 1.00
5 E 7 10 0.70
6 F 8 12 0.67
7 G 3 5 0.60
8:10:19 0.53
يتم الآن تقريب كل قيمة من القيم الموجودة في عمود النسبة إلى منزلتين عشريتين.
لاحظ أن أسلوب R الأساسي وأسلوب dplyr ينتجان نفس النتائج.
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية تنفيذ المهام الشائعة الأخرى في R:
كيفية تصفية القيم الفريدة باستخدام dplyr
كيفية التصفية حسب شروط متعددة باستخدام dplyr
كيفية حساب عدد التكرارات في الأعمدة في R