Learn R Programming

spatstat.geom (version 2.3-1)

weighted.median: Weighted Median, Quantiles or Variance

Description

Compute the median, quantiles or variance of a set of numbers which have weights associated with them.

Usage

weighted.median(x, w, na.rm = TRUE, type=2)

weighted.quantile(x, w, probs=seq(0,1,0.25), na.rm = TRUE, type=4)

weighted.var(x, w, na.rm = TRUE)

Arguments

x

Data values. A vector of numeric values, for which the median or quantiles are required.

w

Weights. A vector of nonnegative numbers, of the same length as x.

probs

Probabilities for which the quantiles should be computed. A numeric vector of values between 0 and 1.

na.rm

Logical. Whether to ignore NA values.

type

Integer specifying the rule for calculating the median or quantile, corresponding to the rules available for quantile. The only valid choices are type=1, 2 or 4. See Details.

Value

A numeric value or vector.

Details

The ith observation x[i] is treated as having a weight proportional to w[i].

The weighted median is a value m such that the total weight of data less than or equal to m is equal to half the total weight. More generally, the weighted quantile with probability p is a value q such that the total weight of data less than or equal to q is equal to p times the total weight.

If there is no such value, then

  • if type=1, the next largest value is returned (this is the right-continuous inverse of the left-continuous cumulative distribution function);

  • if type=2, the average of the two surrounding values is returned (the average of the right-continuous and left-continuous inverses);

  • if type=4, linear interpolation is performed.

Note that the default rule for weighted.median is type=2, consistent with the traditional definition of the median, while the default for weighted.quantile is type=4.

See Also

quantile, median.

Examples

Run this code
# NOT RUN {
  x <- 1:20
  w <- runif(20)
  weighted.median(x, w)
  weighted.quantile(x, w)
  weighted.var(x, w)
# }

Run the code above in your browser using DataLab