R: Weighted Arithmetic Mean

weighted.mean {stats} | R Documentation

## Weighted Arithmetic Mean

### Description

Compute a weighted mean.

### Usage

    weighted.mean(x, w, ...)

    ## Default S3 method:
    weighted.mean(x, w, ..., na.rm = FALSE)

### Arguments

`x` | an object containing the values whose weighted mean is to be computed.
`w` | a numerical vector of weights the same length as `x` giving the weights to use for elements of `x`.
`...` | arguments to be passed to or from methods.
`na.rm` | a logical value indicating whether `NA` values in `x` should be stripped before the computation proceeds.

### Details

This is a generic function and methods can be defined for the first argument `x`: apart from the default methods there are methods for the date-time classes `"POSIXct"`, `"POSIXlt"`, `"difftime"` and `"Date"`. The default method will work for any numeric-like object for which `[`, multiplication, division and `sum` have suitable methods, including complex vectors.

If `w` is missing then all elements of `x` are given the same weight, otherwise the weights coerced to numeric by `as.numeric` and normalized to sum to one (if possible: if their sum is zero or infinite the value is likely to be `NaN`).

Missing values in `w` are not handled specially and so give a missing value as the result. However, zero weights are handled specially and the corresponding `x` values are omitted from the sum.

### Value

For the default method, a length-one numeric vector.

### See Also

`mean`

### Examples

    ## GPA from Siegel 1994
    wt <- c(5,  5,  4,  1)/15
    x <- c(3.7,3.3,3.5,2.8)
    xm <- weighted.mean(x, wt)

[Package stats version 3.5.1 Index]