Learn R Programming

DescTools (version 0.99.17)

Extremes: Kth Smallest/Largest Values

Description

This function returns the kth smallest, resp. largest values from a vector x.

Usage

Small(x, k = 5, unique = FALSE, na.last = NA) Large(x, k = 5, unique = FALSE, na.last = NA)

Arguments

x
a numeric vector

k
an integer >0 defining how many extreme values should be returned. Default is k = 5. If k > length(x), all values will be returned.

unique
logical, defining if unique values should be considered or not. If this is set to TRUE, a list with the k extreme values and their frequencies is returned. Default is FALSE (as unique is a rather expensive function).

na.last
for controlling the treatment of NAs. If TRUE, missing values in the data are put last; if FALSE, they are put first; if NA, they are removed.

Value

unique is set to FALSE or a list, containing the k most extreme values and their respective frequency.

Details

There are several points of this problem discussed out there. This implementation is based on effective C++ code, which is quite fast.

References

http://stackoverflow.com/questions/36993935/find-the-largest-n-unique-values-and-their-frequencies-in-r-and-rcpp/

http://gallery.rcpp.org/articles/top-elements-from-vectors-using-priority-queue/

See Also

max, max, HighLow, sort, rank

Examples

Run this code
x <- sample(1:10, 1000, rep=TRUE)
Large(x, 3)
Large(x, k=3, unique=TRUE)

# works fine up to x ~ 1e6
x <- runif(1000000)
Small(x, 3, unique=TRUE)
Small(x, 3, unique=FALSE)

Run the code above in your browser using DataLab