| transmute_weights | R Documentation | 
Transmute weights to turn a generalized mean of order r into a
generalized mean of order s. Useful for calculating additive and
multiplicative decompositions for a generalized-mean index, and those made
of nested generalized means (e.g., Fisher index).
transmute_weights(r, s)
nested_transmute(r1, r2, s, t = c(1, 1))
nested_transmute2(r1, r2, s, t = c(1, 1))
| r,s | A finite number giving the order of the generalized mean. See details. | 
| r1 | A finite number giving the order of the outer generalized mean. | 
| r2 | A pair of finite numbers giving the order of the inner generalized means. | 
| t | A pair of strictly positive weights for the inner generalized means. The default is equal weights. | 
The function transmute_weights(r, s) returns a function to compute a
vector of weights v(x, w) such that
generalized_mean(r)(x, w) == generalized_mean(s)(x, v(x, w))
nested_transmute(r1, r2, t, s) and nested_transmute2(r1, r2, t, s) do
the same for nested generalized means, so that
nested_mean(r1, r2, t)(x, w1, w2) == generalized_mean(s)(x, v(x, w1, w2))
Transmuting weights returns a value that is the same length as x,
so any missing values in x or the weights will return NA.
Unless all values are NA, however, the result will still satisfy
the above identities when na.rm = TRUE.
transmute_weights() returns a function:
function(x, w = NULL, tol = .Machine$double.eps^0.5){...}
nested_transmute() and nested_transmute2() similarly return a
function:
function(x, w1 = NULL, w2 = NULL, tol = .Machine$double.eps^0.5){...}
See vignette("decomposing-indexes") for more details.
generalized_mean() for the generalized mean and nested_mean() for the
nested mean.
extended_mean() for the extended mean that underlies
transmute_weights().
contributions() for calculating additive percent-change
contributions.
grouped() to make these functions operate on grouped data.
Other weights functions: 
factor_weights(),
scale_weights()
x <- 1:3
w <- 3:1
# Calculate the geometric mean as an arithmetic mean and
# harmonic mean by transmuting the weights.
geometric_mean(x)
arithmetic_mean(x, transmute_weights(0, 1)(x))
harmonic_mean(x, transmute_weights(0, -1)(x))
# Works for nested means, too.
w1 <- 3:1
w2 <- 1:3
fisher_mean(x, w1, w2)
arithmetic_mean(x, nested_transmute(0, c(1, -1), 1)(x, w1, w2))
arithmetic_mean(x, nested_transmute2(0, c(1, -1), 1)(x, w1, w2))
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.