quantile {stats} | R Documentation |
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.
quantile(x, ...) ## Default S3 method: quantile(x, probs = seq(0, 1, 0.25), na.rm = FALSE, names = TRUE, type = 7, ...)
x |
numeric vector whose sample quantiles are wanted, or an
object of a class for which a method has been defined (see also
‘details’). NA and NaN values are not
allowed in numeric vectors unless na.rm is TRUE . |
probs |
numeric vector of probabilities with values in [0,1]. (As from R 2.8.0 values up to 2e-14 outside that range are accepted and moved to the nearby endpoint. |
na.rm |
logical; if true, any NA and NaN 's
are removed from x before the quantiles are computed. |
names |
logical; if true, the result has a names
attribute. Set to FALSE for speedup with many probs . |
type |
an integer between 1 and 9 selecting one of the nine quantile algorithms detailed below to be used. |
... |
further arguments passed to or from other methods. |
A vector of length length(probs)
is returned;
if names = TRUE
, it has a names
attribute.
NA
and NaN
values in probs
are
propagated to the result.
The default method does not allow factors, but works with objects
sufficiently like numeric vectors that sort
, addition and
multiplication work correctly. In principle only sorts and weighted
means are needed, so datatimes could have quantiles – but this is not
implemented. Note that as this is in a namespace, the copy of
sort
in base will be used, not some S4 generic of that name.
quantile
returns estimates of underlying distribution quantiles
based on one or two order statistics from the supplied elements in
x
at probabilities in probs
. One of the nine quantile
algorithms discussed in Hyndman and Fan (1996), selected by
type
, is employed.
All sample quantiles are defined as weighted averages of consecutive order statistics. Sample quantiles of type i are defined by:
Q[i](p) = (1 - gamma) x[j] + gamma x[j+1],
where 1 <= i <= 9, (j-m)/n <= p < (j-m+1)/n, x[j] is the jth order statistic, n is the sample size, the value of gamma is a function of j = floor(np + m) and g = np + m - j, and m is a constant determined by the sample quantile type.
Discontinuous sample quantile types 1, 2, and 3
For types 1, 2 and 3, Q[i](p) is a discontinuous function of p, with m = 0 when i = 1 and i = 2, and m = -1/2 when i = 3.
Continuous sample quantile types 4 through 9
For types 4 through 9, Q[i](p) is a continuous function of p, with gamma = g and m given below. The sample quantiles can be obtained equivalently by linear interpolation between the points (p[k],x[k]) where x[k] is the kth order statistic. Specific expressions for p[k] are given below.
x
.
x
is normally distributed.
of the version used in R >= 2.0.0, Ivan Frohne and Rob J Hyndman.
Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.
Hyndman, R. J. and Fan, Y. (1996) Sample quantiles in statistical packages, American Statistician, 50, 361–365.
ecdf
for empirical distributions of which
quantile
is an inverse;
boxplot.stats
and fivenum
for computing
other versions of quartiles, etc.
quantile(x <- rnorm(1001)) # Extremes & Quartiles by default quantile(x, probs = c(0.1, 0.5, 1, 2, 5, 10, 50, NA)/100) ### Compare different types p <- c(0.1, 0.5, 1, 2, 5, 10, 50)/100 res <- matrix(as.numeric(NA), 9, 7) for(type in 1:9) res[type, ] <- y <- quantile(x, p, type = type) dimnames(res) <- list(1:9, names(y)) round(res, 3)