How to compute quantiles using R with examples

In this tutorial you will learn about the what are quantiles and how to compute quantiles (quartiles, octiles, deciles and percentiles) using R.

Quantiles using R

Quantiles are the values which divides the entire data into some number of equal parts. The commonly used number of equal parts are 4, 8, 10 and 100.

The general syntax of quantile() function is

quantile(x, probs = seq(0, 1, 0.25), na.rm = FALSE,
         names = TRUE, type = 7, ...)

where,

  • x: numeric vector
  • probs: numeric vector of probabilities with values in [0,1]
  • na.rm: logical; if true any NA and NaN's are removed
  • names: logical; if true, the result has a names
  • type: an integer between 1 and 9 selecting one of the nine quantile algorithms.

In R, quantiles can be calculates using 9 different algorithm. To use specific algorithm, use the argument type with integer value between 1 and 9. For more detail about the 9 different algorithms, check the help of quantile function in R.

How to compute quantiles using R?

Quartiles using R

Quartiles are the values which divides the entire data into four equal parts.

x<-c(20,30,21,29,10,17,18,15,27,25,
     16,15,19,22,13,17,14,18,12,9)
quantile(x)
   0%   25%   50%   75%  100% 
 9.00 14.75 17.50 21.25 30.00 

Note that if you do not specify the probs argument in quantile() function, R compute the minimum, first quartile, second quartile, third quartile and the maximum value.

We can use probs=c(0.25,0.50,0.75) argument to get specific quantiles. Below R code compute first, second and third quartile for the data x.

Quartiles <- quantile(x, probs = c(0.25, 0.50, 0.75))
Quartiles
  25%   50%   75% 
14.75 17.50 21.25 

If you do not specify the type argument, by default R use type =1 (i.e., inverse of empirical distribution function algorithm) to compute quantiles.

To get quartiles similar to the one obtained using Minitab or SPSS, use the argument type=6.

Quar1 <- quantile(x, probs = c(0.25, 0.50, 0.75), type = 6)
Quar1
  25%   50%   75% 
14.25 17.50 21.75 
  • The first value is the first quartile $Q_1$ or $25^{th}$ percentile $P_{25}$.
  • The second value is the second quartile $Q_2$ or $50^{th}$ percentile $P_{50}$ (same as median).
  • The third value is the third quartile $Q_3$ or $75^{th}$ percentile $P_{75}$.
y <- c(x, NA)
quantile(y,probs = c(0.25, 0.50, 0.75), type = 6,na.rm=TRUE)
  25%   50%   75% 
14.25 17.50 21.75 

If data contains NA, then use the argument na.rm=TRUE to the quantile function, otherwise R display an error message "missing values and NaN's not allowed if 'na.rm' is FALSE"

Octiles using R

Octiles are the values that divides the entire data into eight equal parts.

Octiles <-quantile(x,probs=seq(1/8,7/8,1/8),type=6)
Octiles
 12.5%    25%  37.5%    50%  62.5%    75%  87.5% 
11.250 14.250 15.875 17.500 19.125 21.750 27.750 
  • The first value is the first octile $O_1$.
  • The second value is the second octile $O_2$ or $25^{th}$ percentile $P_{25}$.
  • Similarly, the last value is the seventh octile $O_7$.

Deciles using R

Deciles are the values that divides the entire data into ten equal parts.

Deciles <-quantile(x,probs=seq(0.1,0.9,0.1),type=6)
Deciles
 10%  20%  30%  40%  50%  60%  70%  80%  90% 
10.2 13.2 15.0 16.4 17.5 18.6 20.7 24.4 28.8 
  • The first value is the first decile $D_1$ or $10^{th}$ percentile $P_{10}$.
  • The second value is the second decile $D_2$ or $20^{th}$ percentile $P_{20}$.
  • Similarly, the last value is the ninth decile $D_9$ or $90^{th}$ percentile $P_{90}$.
Deciles1 <-quantile(x,probs=seq(0.1,0.9,0.1),type=6,names=FALSE)
Deciles1
[1] 10.2 13.2 15.0 16.4 17.5 18.6 20.7 24.4 28.8

If you specify the argument names=FALSE, R display the result without the names.

Percentiles using R

Percentiles are the values that divides the entire data into hundred equal parts.

Percentiles <-quantile(x,probs=seq(0.1,0.9,0.1),type=6)
Percentiles
 10%  20%  30%  40%  50%  60%  70%  80%  90% 
10.2 13.2 15.0 16.4 17.5 18.6 20.7 24.4 28.8 

To get specific percentile we can use the quantile() function with probs argument as follows:

Percent1<-quantile(x,probs=c(0.10,0.35,0.60,0.80),type=6)
Percent1
  10%   35%   60%   80% 
10.20 15.35 18.60 24.40 
  • The first value is the tenth percentile $P_{10}$.
  • The second value is the thirty-fifth percentile $P_{35}$.
  • The third value is the $60^{th}$ percentile $P_{60}$.
  • The last value is the $80^{th}$ percentile $P_{80}$.

Endnote

In this tutorial you learned about how to use quantile() function to compute quartiles, octiles, deciles and percentiles using R.

To learn more about descriptive statistics using R, please refer to the following tutorials:

Hopefully you enjoyed learning this tutorial on how to compute quantiles using R. Hope the content is more than sufficient to understand the use of quantile() function in R.

VRCBuzz co-founder and passionate about making every day the greatest day of life. Raju is nerd at heart with a background in Statistics. Raju looks after overseeing day to day operations as well as focusing on strategic planning and growth of VRCBuzz products and services. Raju has more than 25 years of experience in Teaching fields. He gain energy by helping people to reach their goal and motivate to align to their passion. Raju holds a Ph.D. degree in Statistics. Raju loves to spend his leisure time on reading and implementing AI and machine learning concepts using statistical models.

Leave a Comment