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 = NA)
colWeightedVars(x, w = NULL, rows = NULL, cols = NULL, na.rm = FALSE,
..., useNames = NA)
rowWeightedSds(x, w = NULL, rows = NULL, cols = NULL, na.rm = FALSE,
..., useNames = NA)
colWeightedSds(x, w = NULL, rows = NULL, cols = NULL, na.rm = FALSE,
..., useNames = NA)
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.
If TRUE, missing values are
excluded.
Not used.
Returns a numeric scalar.
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.
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.