median
Median Value
Compute the sample median.
Usage
median(x, na.rm = FALSE, …)
Arguments
- x
an object for which a method has been defined, or a numeric vector containing the values whose median is to be computed.
- na.rm
a logical value indicating whether
NA
values should be stripped before the computation proceeds.- …
potentially further arguments for methods; not used in the default method.
Details
This is a generic function for which methods can be written. However,
the default method makes use of is.na
, sort
and
mean
from package base all of which are generic, and so
the default method will work for most classes
(e.g., "Date"
) for which a median is a reasonable
concept.
Value
The default method returns a length-one object of the same type as
x
, except when x
is logical or integer of even length,
when the result will be double.
If there are no values or if na.rm = FALSE
and there are NA
values the result is NA
of the same type as x
(or more
generally the result of x[FALSE][NA]
).
References
Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.
See Also
quantile
for general quantiles.
Examples
library(stats)
# NOT RUN {
median(1:4) # = 2.5 [even number]
median(c(1:3, 100, 1000)) # = 3 [odd, robust]
# }
Community examples
The median of a set with an number of values is the middle one, when sorted from smallest to largest. ```{r} x <- c(1, 10, 5, 8, 9) median(x) sort(x)[3] # same ``` If there are an even number of values, the median is half way between the two middle values. ```{r} x <- c(1, 10, 5, 8, 9, 6) median(x) sorted <- sort(x) (sorted[3] + sorted[4]) / 2 # same ``` If there are any missing values, the median is also missing. ```{r} median(c(1, 10, 5, 8, 9, NA)) ``` You can exclude missing values by setting `na.rm = TRUE`. ```{r} median(c(1, 10, 5, 8, 9, NA), na.rm = TRUE) ``` The median is known as a robust estimator of location, since it ignores outliers. The following dataset has 10% taken from a wide distribution that will generate many outliers. The expected mean and median are both zero. Which one is closest? ```{r} x <- c(rnorm(900), rnorm(100, sd = 1000)) mean(x) median(x) ```