Weighted Arithmetic Mean
Computes the weighted sample mean of a numeric vector.
weightedMean(x, w = NULL, idxs = NULL, na.rm = FALSE, refine = FALSE, ...)
x |
a |
w |
a vector of weights the same length as |
idxs |
A |
na.rm |
a logical value indicating whether |
refine |
If |
... |
Not used. |
This function handles missing values consistently with
weighted.mean
. 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
mean
() and weighted.mean
.
x <- 1:10 n <- length(x) w <- rep(1, times = n) m0 <- weighted.mean(x, w) m1 <- weightedMean(x, w) stopifnot(identical(m1, m0)) # Pull the mean towards zero w[1] <- 5 m0 <- weighted.mean(x, w) m1 <- weightedMean(x, w) stopifnot(identical(m1, m0)) # Put even more weight on the zero w[1] <- 8.5 m0 <- weighted.mean(x, w) m1 <- weightedMean(x, w) stopifnot(identical(m1, m0)) # All weight on the first value w[1] <- Inf m0 <- weighted.mean(x, w) m1 <- weightedMean(x, w) stopifnot(identical(m1, m0)) # All weight on the last value w[1] <- 1 w[n] <- Inf m0 <- weighted.mean(x, w) m1 <- weightedMean(x, w) stopifnot(identical(m1, m0)) # All weights set to zero w <- rep(0, times = n) m0 <- weighted.mean(x, w) m1 <- weightedMean(x, w) stopifnot(identical(m1, m0))
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.