Computes a weighted MAD of a numeric vector.
weightedMad(x, w = NULL, idxs = NULL, na.rm = FALSE, constant = 1.4826,
center = NULL, ...)
rowWeightedMads(x, w = NULL, rows = NULL, cols = NULL, na.rm = FALSE,
constant = 1.4826, center = NULL, ..., useNames = TRUE)
colWeightedMads(x, w = NULL, rows = NULL, cols = NULL, na.rm = FALSE,
constant = 1.4826, center = NULL, ..., useNames = TRUE)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.
A vector indicating subset of elements to
operate over. If NULL, no subsetting is done.
If TRUE, missing values are
excluded.
Optional numeric scalar specifying the
center location of the data. If NULL, it is estimated
from data.
Not used.
A vector indicating subset of rows to
operate over. If NULL, no subsetting is done.
A vector indicating subset of columns to
operate over. If NULL, no subsetting is done.
If TRUE (default), names
attributes of the result are set, otherwise not.
Returns a numeric scalar.
Missing values are dropped at the very beginning,
if argument na.rm is TRUE, otherwise not.
For the non-weighted MAD, see mad. Internally
weightedMedian() is used to calculate the weighted median.
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))