Як обчислити відносні частоти за допомогою dplyr
Часто вам може знадобитися обчислити відносні частоти/пропорції значень в одному або кількох стовпцях кадру даних у R.
На щастя, це легко зробити за допомогою функцій у пакеті dplyr . У цьому підручнику показано, як використовувати ці функції для обчислення відносних частот у такому кадрі даних:
#create data frame df <- data.frame(team = c('A', 'A', 'A', 'B', 'B', 'B', 'B'), position = c('G', 'F', 'F', 'G', 'G', 'G', 'F'), points = c(12, 15, 19, 22, 32, 34, 39)) #view data frame df team position points 1 AG 12 2 AF15 3 FY 19 4 BG 22 5 BG 32 6 BG 34 7 BF 39
Приклад 1: Відносна частота змінної
Наступний код показує, як обчислити відносну частоту кожної команди у кадрі даних:
library(dplyr) df %>% group_by (team) %>% summarize (n = n()) %>% mutate (freq = n / sum(n)) # A tibble: 2 x 3 team n freq 1 to 3 0.429 2 B 4 0.571
Це говорить нам про те, що на команду A припадає 42,9% усіх рядків у кадрі даних, а на команду B — решту 57,1% рядків. Зверніть увагу, що разом вони дають 100%.
За темою: Повний посібник: як групувати та підсумовувати дані в R
Приклад 2: Відносна частота кількох змінних
Наступний код показує, як обчислити відносну частоту позицій на команду:
library(dplyr) df %>% group_by (team, position) %>% summarize (n = n()) %>% mutate (freq = n / sum(n)) # A tibble: 4 x 4 # Groups: team [2] team position n freq 1 AF 2 0.667 2 AG 1 0.333 3 BF 1 0.250 4 BG 3 0.750
Це говорить нам про те, що:
- 66,7% гравців команди А займають позицію F.
- 33,3% гравців команди А займають позицію G.
- 25,0% гравців команди А займають позицію F.
- 75,0% гравців команди B займають позицію G.
Пов’язане: Як використовувати Mutate для створення нових змінних у R
Приклад 3: Показати відносні частоти у відсотках
Наступний код показує, як обчислити відносну частоту позицій командою та як відобразити ці відносні частоти у відсотках:
library(dplyr) df %>% group_by (team, position) %>% summarize (n = n()) %>% mutate (freq = paste0(round(100 * n/sum(n), 0), ' % ')) # A tibble: 4 x 4 # Groups: team [2] team position n freq 1 AF 2 67% 2 GA 1 33% 3 BF 1 25% 4 BG 3 75%
Ви можете знайти більше підручників з R тут .