Learn R Programming

matrixStats (version 0.12.2)

weightedMad: Weighted Median Absolute Deviation (MAD)

Description

Computes a weighted MAD of a numeric vector.

Usage

weightedMad(x, w, na.rm=FALSE, constant=1.4826, center=NULL, ...)

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.
na.rm
a logical value indicating whether NA values in x should be stripped before the computation proceeds, or not. If NA, no che
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

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