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).

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).

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.

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.

See also

Author

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

Examples


x <- c(0:10, 50)
xm <- Range(x)
c(xm, Range(x, trim = 0.10))
#> [1] 50  9

x <- c(rnorm(20), rnorm(3, 5, 20))
Range(x, robust=TRUE)
#> [1] 4.509729
#> attr(,"bounds")
#> [1] -2.412794  2.096934

# compared to
Range(x)
#> [1] 44.38318
#> attr(,"bounds")
#> [1] -11.31742  33.06577