Как рассчитать процентильный ранг в R (примеры 2)


Процентильный ранг значения сообщает нам процент значений в наборе данных, ранг которых равен или ниже заданного значения.

Вы можете использовать следующие методы для вычисления процентного ранга в R:

Метод 1: вычислить процентильный ранг для всего набора данных

library(dplyr)

df %>%
 mutate(percent_rank = rank(x)/length(x))

Метод 2: вычислить процентильный ранг по группе

library(dplyr)

df %>%
 group_by(group_var) %>%
 mutate(percent_rank = rank(x)/length(x))

В следующих примерах показано, как использовать каждый метод на практике со следующим фреймом данных:

#create data frame
df <- data.frame(team=rep(c('A', 'B'), each= 7 ),
 points=c(2, 5, 5, 7, 9, 13, 15, 17, 22, 24, 30, 31, 38, 39))

#view data frame
df

 team points
1 A 2
2 A 5
3 A 5
4 A 7
5 A 9
6 A 13
7 A 15
8 B 17
9 B 22
10 B 24
11 B 30
12 B 31
13 B 38
14 B 39

Пример 1. Расчет процентиля для всего набора данных

В следующем коде показано, как использовать функции из пакета dplyr в R для вычисления процентного ранга каждого значения в столбце точек:

library(dplyr)

#calculate percentile rank of points values
df %>%
 mutate(percent_rank = rank(points)/length(points))

 team points percent_rank
1 A 2 0.07142857
2 A 5 0.17857143
3 A 5 0.17857143
4 A 7 0.28571429
5 A 9 0.35714286
6 A 13 0.42857143
7 A 15 0.50000000
8 B 17 0.57142857
9 B 22 0.64285714
10 B 24 0.71428571
11 B 30 0.78571429
12 B 31 0.85714286
13 B 38 0.92857143
14 B 39 1.00000000

Вот как интерпретировать значения в столбце процент_ранг :

  • 7,14% значений баллов равны или меньше 2.
  • 17,86% значений баллов равны или меньше 5.
  • 28,57% значений баллов равны или меньше 7.

И так далее.

Пример 2. Расчет процентиля по группе

В следующем коде показано, как использовать функции из пакета dplyr в R для вычисления процентного ранга каждого значения в очках, столбце, сгруппированных по командам:

library(dplyr)

#calculate percentile rank of points values grouped by team
df %>%
 group_by(team) %>%
 mutate(percent_rank = rank(points)/length(points))

# A tibble: 14 x 3
# Groups: team [2]
 team points percent_rank

 1 A 2 0.143
 2 A 5 0.357
 3 A 5 0.357
 4 A 7 0.571
 5 A 9 0.714
 6 A 13 0.857
 7 A 15 1 
 8 B 17 0.143
 9 B 22 0.286
10 B 24 0.429
11 B 30 0.571
12 B 31 0.714
13 B 38 0.857
14 B 39 1 

Вот как интерпретировать значения в столбце процент_ранг :

  • 14,3% значений очков для команды А равны или меньше 2.
  • 35,7% значений очков для команды А равны или меньше 5.
  • 57,1% значений очков для команды А равны или меньше 7.

И так далее.

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные задачи в R:

Как рассчитать процентили в R
Как рассчитать квартили в R
Как рассчитать квантили по группам в R

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.