| weightedMean {matrixStats} | R Documentation |
Weighted Arithmetic Mean
Description
Computes the weighted sample mean of a numeric vector.
Usage
weightedMean(x, w = NULL, idxs = NULL, na.rm = FALSE, refine = FALSE,
...)
Arguments
x |
|
w |
a vector of weights the same length as |
idxs |
A |
na.rm |
If |
refine |
If |
... |
Not used. |
Value
Returns a numeric scalar. If x is of
zero length, then NaN is returned, which is consistent with
mean().
Missing values
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.
Author(s)
Henrik Bengtsson
See Also
mean() and weighted.mean.
Examples
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))