| rank {base} | R Documentation |
Sample Ranks
Description
Returns the sample ranks of the values in a vector. Ties (i.e., equal values) and missing values can be handled in several ways.
Usage
rank(x, na.last = TRUE,
ties.method = c("average", "first", "random", "max", "min"))
Arguments
x |
a numeric, complex, character or logical vector. |
na.last |
for controlling the treatment of |
ties.method |
a character string specifying how ties are treated, see below; can be abbreviated. |
Details
If all components are different (and no NAs), the ranks are
well defined, with values in seq_len(x). With some values equal
(called ‘ties’), the argument ties.method determines the
result at the corresponding indices. The "first" method results
in a permutation with increasing values at each index set of ties.
The "random" method puts these in random order whereas the
default, "average", replaces them by their mean, and
"max" and "min" replaces them by their maximum and
minimum respectively, the latter being the typical “sports”
ranking.
NA values are never considered to be equal: for na.last =
TRUE and na.last = FALSE they are given distinct ranks in
the order in which they occur in x.
References
Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth \& Brooks/Cole.
See Also
order and sort.
Examples
(r1 <- rank(x1 <- c(3, 1, 4, 15, 92)))
x2 <- c(3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5)
names(x2) <- letters[1:11]
(r2 <- rank(x2)) # ties are averaged
## rank() is "idempotent": rank(rank(x)) == rank(x) :
stopifnot(rank(r1) == r1, rank(r2) == r2)
## ranks without averaging
rank(x2, ties.method= "first") # first occurrence wins
rank(x2, ties.method= "random") # ties broken at random
rank(x2, ties.method= "random") # and again
## keep ties ties, no average
(rma <- rank(x2, ties.method= "max")) # as used classically
(rmi <- rank(x2, ties.method= "min")) # as in Sports
stopifnot(rma + rmi == round(r2 + r2))