| quantile {base} | R Documentation |
Sample Quantiles
Description
The generic function quantile produces sample quantiles
corresponding to the given probabilities.
The smallest observation corresponds to a probability of 0 and the
largest to a probability of 1.
Usage
## Default S3 method:
quantile(x, probs = seq(0, 1, 0.25), na.rm = FALSE,
names = TRUE, ...)
Arguments
x |
numeric vectors whose sample quantiles are wanted. |
probs |
numeric vector with values in |
na.rm |
logical; if true, any |
names |
logical; if true, the result has a |
... |
further arguments passed to or from other methods. |
Details
A vector of length length(probs) is returned;
if names = TRUE, it has a names attribute.
quantile(x,p) as a function of p linearly interpolates
the points ( (i-1)/(n-1), ox[i] ), where
ox <- order(x) (the “order statistics”) and n <- length(x).
This gives quantile(x, p) == (1-f)*ox[i] + f*ox[i+1], where
r <- 1 + (n-1)*p, i <- floor(r), f <- r - i
and ox[n+1] := ox[n].
NA and NaN values in probs are
propagated to the result.
See Also
ecdf for empirical distributions of
which quantile is the "inverse".
boxplot.stats and fivenum for computing
“versions” of quartiles, etc.
Examples
quantile(x <- rnorm(1001))# Extremes & Quartiles by default
quantile(x, probs=c(.1,.5,1,2,5,10,50, NA)/100)
n <- length(x) ## the following is exact, because 1/(1001-1) is exact:
stopifnot(sort(x) == quantile(x, probs = ((1:n)-1)/(n-1), names=FALSE))
n <- 777
ox <- sort(x <- round(rnorm(n),1))# round() produces ties
ox <- c(ox, ox[n]) #- such that ox[n+1] := ox[n]
p <- c(0,1,runif(100))
i <- floor(r <- 1 + (n-1)*p)
f <- r - i
all(abs(quantile(x,p) - ((1-f)*ox[i] + f*ox[i+1])) < 20*.Machine$double.eps)