Как использовать функцию 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