Computes a weighted variance / standard deviation of a numeric vector or across rows or columns of a matrix.
weightedVar(x, w = NULL, idxs = NULL, na.rm = FALSE, center = NULL,
...)weightedSd(...)
rowWeightedVars(x, w = NULL, rows = NULL, cols = NULL, na.rm = FALSE,
..., useNames = TRUE)
colWeightedVars(x, w = NULL, rows = NULL, cols = NULL, na.rm = FALSE,
..., useNames = TRUE)
rowWeightedSds(x, w = NULL, rows = NULL, cols = NULL, na.rm = FALSE,
..., useNames = TRUE)
colWeightedSds(x, w = NULL, rows = NULL, cols = NULL, na.rm = FALSE,
..., 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.
This function handles missing values consistently with
weightedMean
().
More precisely, if na.rm = FALSE
, then any missing values in either
x
or w
will give result NA_real_
.
If na.rm = TRUE
, then all (x, w)
data points for which
x
is missing are skipped. Note that if both x
and w
are missing for a data points, then it is also skipped (by the same rule).
However, if only w
is missing, then the final results will always
be NA_real_
regardless of na.rm
.
Henrik Bengtsson
The estimator used here is the same as the one used by the "unbiased"
estimator of the Hmisc package. More specifically,
weightedVar(x, w = w) == Hmisc::wtd.var(x, weights = w)
,
For the non-weighted variance, see var
.