
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)
Returns a numeric
scalar.
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.
Missing values are dropped at the very beginning,
if argument na.rm
is TRUE
, otherwise not.
Henrik Bengtsson
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))
Run the code above in your browser using DataLab