R: (Robust) Range

Range {DescTools} | R Documentation

## (Robust) Range

### Description

Determines the range of the data, which can possibly be trimmed before calculating the extreme values. The robust range version is calculated on the basis of the trimmed mean and variance (see Details).

### Usage

    Range(x, trim = NULL, robust = FALSE, na.rm = FALSE, ...)

### Arguments

`x` | a numeric vector.
`trim` | the fraction (0 to 0.5) of observations to be trimmed from each end of `x` before the mean is computed. Values of trim outside that range are taken as the nearest endpoint. Default is 0 for `robust=FALSE` and 0.2 for `robust=TRUE`
`robust` | logical, determining whether the robust or the convential range should be returned.
`na.rm` | a logical value indicating whether `NA` values should be stripped before the computation proceeds.
`...` | the dots are sent to `RobRange` and can be used to set `fac` (See details).

### Details

The R base function range returns the minimum and maximum value of a numeric object. Here we return the span of a (possibly trimmed) numeric vector, say the difference of maximum and minimum value.

If robust is set to `TRUE` the function determines the trimmed mean m and then the "upper trimmed mean" s of absolute deviations from m, multiplied by `fac` (fac is 3 by default). The robust minimum is then defined as m-fac*s or min(x), whichever is larger, and similarly for the maximum.

### Value

If `trim` is zero (the default), the arithmetic mean of the values in `x` is computed, as a numeric or complex vector of length one. If `x` is not logical (coerced to numeric), numeric (including integer) or complex, `NA_real_` is returned, with a warning.

If `trim` is non-zero, a symmetrically trimmed mean is computed with a fraction of `trim` observations deleted from each end before the mean is computed.

### Author(s)

Werner Stahel, ETH Zurich (robust range)
Andri Signorell <andri@signorell.net>

### See Also

`range`, `min`, `max`

### Examples

    x <- c(0:10, 50)
    xm <- Range(x)
    c(xm, Range(x, trim = 0.10))

    x <- c(rnorm(20), rnorm(3, 5, 20))
    Range(x, robust=TRUE)

    # compared to
    Range(x)

[Package DescTools version 0.99.26 Index]