در این مقاله قصد دارم به آموزش نحوه محاسبه نسبت در R بپردازم. تا انتهای این مقاله همراه کیارا آکادمی باشید تا آموزش نرم افزار R را به صورت کاربردی دریافت نمایید. برای محاسبه نسبت بین مقادیر در دو ستون در R می توانید از روش های زیر استفاده کنید:
روش 1: از پایه 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) |
روش 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)) |
#مشاهده قاب داده df |
مثال 1: محاسبه نسبت ها با استفاده از پایه R
کد زیر نحوه محاسبه نسبت بین مقادیر موجود در ستونهای ساخت و تلاش را با استفاده از پایه R نشان میدهد:
#calculate ratio between makes and attempts columns df$ratio <- df$makes/df$attempts |
#مشاهده قاب داده به روز شده df |
نسبت انجام به تلاش برای بازیکن اول 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) |
#مشاهده قاب داده به روز شده df |
اکنون هر یک از مقادیر در ستون نسبت به دو رقم اعشار گرد شده است.
مثال 2: محاسبه نسبت ها با استفاده از dplyr : کد زیر نحوه محاسبه نسبت بین مقادیر در ستونهای make و trys را با استفاده از بسته dplyr نشان میدهد:
library(dplyr) |
#add new column that shows ratio of makes to attempts df <- df %>% mutate(ratio = makes/attempts) |
#مشاهده قاب داده به روز شده df |
همچنین میتوانیم از تابع ()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)) |
#مشاهده قاب داده به روز شده df |
اکنون هر یک از مقادیر در ستون نسبت به دو رقم اعشار گرد شده است. توجه داشته باشید که روش پایه R و روش dplyr نتایج یکسانی دارند.
مطالعه منابع بیشتر: