Calculate the weighted variance of x.

varW(x, w = NULL, na.rm = FALSE)

Arguments

x

A numeric vector.

w

A numeric vector of weights of the same length as x.

na.rm

Logical, whether NAs in x should be removed.

Value

A numeric value, the weighted variance of x.

Details

Calculate the weighted variance of x via the weighted covariance matrix (cov.wt()). If no weights are supplied, the simple variance is returned instead. As in weighted.mean(), NAs in w are not handled specially and will return NA as result.

See also

Examples

# Weighted variance x <- rnorm(30) w <- runif(30, 0, 1) varW(x, w)
#> [1] 0.9165465
# Simple variance varW(x)
#> [1] 0.8397168
stopifnot(varW(x) == var(x)) # NA handling varW(c(x[1:29], NA), w, na.rm = TRUE) # NA in x (removed)
#> [1] 0.9325413
varW(c(x[1:29], NA), w, na.rm = FALSE) # NA in x (NA returned)
#> [1] NA
varW(x[1:29], w = c(w[1:29], NA)) # NA in w (NA returned)
#> [1] NA