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.