Weight a variable

Share:

Description

These functions weight the variable x by a specific vector of weights.

Usage

1
2
3
weight(x, weights, digits = 0)

weight2(x, weights)

Arguments

x

(Unweighted) variable

weights

Vector with same length as x, which contains weight factors. Each value of x has a specific assigned weight in weights.

digits

Numeric value indicating the number of decimal places to be used for rounding the weighted values. By default, this value is 0, i.e. the returned values are integer values.

Details

weight2() sums up all weights values of the associated categories of x, whereas weight() uses a xtabs formula to weight cases. Thus, weight() may return a vector of different length than x.

Value

The weighted x.

Note

The values of the returned vector are in sorted order, whereas the values' order of the original x may be spread randomly. Hence, x can't be used, for instance, for further cross tabulation. In case you want to have weighted contingency tables or (grouped) box plots etc., use the weightBy argument of most functions.

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
v <- sample(1:4, 20, TRUE)
table(v)
w <- abs(rnorm(20))
table(weight(v, w))
table(weight2(v, w))

set.seed(1)
x <- sample(letters[1:5], size = 20, replace = TRUE)
w <- runif(n = 20)

table(x)
table(weight(x, w))

Want to suggest features or report bugs for rdrr.io? Use the GitHub issue tracker.