Как использовать функцию quantile() в R


В статистике квантили — это значения, которые делят ранжированный набор данных на равные группы.

Функцию quantile() в R можно использовать для вычисления выборочных квантилей набора данных.

Эта функция использует следующий базовый синтаксис:

квантиль (x, probs = seq (0, 1, 0,25), na.rm = FALSE)

куда:

  • x : имя вектора
  • probs : Числовой вектор вероятностей
  • na.rm : удалять ли значения NA

В следующих примерах показано, как использовать эту функцию на практике.

Пример 1. Вычисление квантилей вектора

Следующий код показывает, как вычислить квантили вектора в R:

#define vector of data 
data = c(1, 3, 3, 4, 5, 7, 8, 9, 12, 13, 13, 15, 18, 20, 22, 23, 24, 28)

#calculate quartiles
quantile(data, probs = seq(0, 1, 1/4))

 0% 25% 50% 75% 100% 
1.0 5.5 12.5 19.5 28.0 

#calculate quintiles
quantile(data, probs = seq(0, 1, 1/5))

 0% 20% 40% 60% 80% 100% 
1.0 4.4 8.8 13.4 21.2 28.0 

#calculate deciles
quantile(data, probs = seq(0, 1, 1/10))

 0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100% 
1.0 3.0 4.4 7.1 8.8 12.5 13.4 17.7 21.2 23.3 28.0 

#calculate random quantiles of interest
quantile(data, probs = c(.2, .5, .9))

20% 50% 90% 
4.4 12.5 23.3

Пример 2. Расчет квантилей столбцов во фрейме данных

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

#create data frame
df <- data.frame(var1=c(1, 3, 3, 4, 5, 7, 7, 8, 12, 14, 18),
 var2=c(7, 7, 8, 3, 2, 6, 8, 9, 11, 11, 16),
 var3=c(3, 3, 6, 6, 8, 4, 4, 7, 10, 10, 11))

#calculate quartiles of column 'var2'
quantile(df$var2, probs = seq(0, 1, 1/4))

 0% 25% 50% 75% 100% 
 2.0 6.5 8.0 10.0 16.0 

Мы также можем использовать функцию sapply() для одновременного вычисления квантилей нескольких столбцов:

#calculate quartiles of every column
sapply(df, function (x) quantile(x, probs = seq(0, 1, 1/4)))

 var1 var2 var3
0% 1.0 2.0 3
25% 3.5 6.5 4
50% 7.0 8.0 6
75% 10.0 10.0 9
100% 18.0 16.0 11

Пример 3: Расчет квантилей по группам

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

library(dplyr)

#define data frame
df <- data.frame(team=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'C', 'C', 'C'),
 points=c(1, 3, 3, 4, 5, 7, 7, 8, 12, 14, 18))

#define quantiles of interest
q = c(.25, .5, .75)

#calculate quantiles by grouping variable
df %>%
 group_by(team) %>%
 summarize(quant25 = quantile(points, probs = q[1]), 
 quant50 = quantile(points, probs = q[2]),
 quant75 = quantile(points, probs = q[3]))

# A tibble: 3 x 4
 team quant25 quant50 quant75

1 A 2.5 3 3.25
2 B 6.5 7 7.25
3 C 13 14 16

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

В следующих руководствах показано, как использовать функцию quantile() для вычисления других распространенных значений квантилей:

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

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