Learn R Programming

matrixStats (version 0.51.0)

weightedMad: Weighted Median Absolute Deviation (MAD)

Description

Computes a weighted MAD of a numeric vector.

Usage

weightedMad(x, w=NULL, idxs=NULL, na.rm=FALSE, constant=1.4826, center=NULL, ...)
 colWeightedMads(x, w=NULL, rows=NULL, cols=NULL, na.rm=FALSE, ...)
 rowWeightedMads(x, w=NULL, rows=NULL, cols=NULL, na.rm=FALSE, ...)

Arguments

x
a numeric vector containing the values whose weighted MAD is to be computed.
w
a vector of weights the same length as x giving the weights to use for each element of x. Negative weights are treated as zero weights. Default value is equal weight to all values.
idxs, rows, cols
A vector indicating subset of elements (or rows and/or columns) to operate over. If NULL, no subsetting is done.
na.rm
a logical value indicating whether NA values in x should be stripped before the computation proceeds, or not. If NA, no check at all for NAs is done. Default value is NA (for efficiency).
constant
A numeric scale factor, cf. mad.
center
Optional numeric scalar specifying the center location of the data. If NULL, it is estimated from data.
...
Not used.

Value

Returns a numeric scalar.

Missing values

Missing values are dropped at the very beginning, if argument na.rm is TRUE, otherwise not.

See Also

For the non-weighted MAD, see mad. Internally weightedMedian() is used to calculate the weighted median.

Examples

Run this code
x <- 1:10
n <- length(x)

m1 <- mad(x)
m2 <- weightedMad(x)
stopifnot(identical(m1, m2))

w <- rep(1, times=n)
m1 <- weightedMad(x, w)
stopifnot(identical(m1,m2))

# All weight on the first value
w[1] <- Inf
m <- weightedMad(x, w)
stopifnot(m == 0)

# All weight on the first two values
w[1:2] <- Inf
m1 <- mad(x[1:2])
m2 <- weightedMad(x, w)
stopifnot(identical(m1,m2))

# All weights set to zero
w <- rep(0, times=n)
m <- weightedMad(x, w)
stopifnot(is.na(m))

Run the code above in your browser using DataLab