Learn R Programming

popkin (version 1.2.2)

weights_subpops: Get weights for individuals that balance subpopulations

Description

This function returns positive weights that sum to one for individuals using subpopulation labels, such that every subpopulation receives equal weight. In particular, if there are \(K\) subpopulations, then the sum of weights for every individuals of a given subpopulation will equal \(\frac{1}{K}\). The weight of every individual is thus inversely proportional to the number of individuals in its subpopulation.

Usage

weights_subpops(subpops)

Arguments

subpops

The length-\(n\) vector of subpopulation assignments for each individual.

Value

The length-\(n\) vector of weights for each individual.

Examples

Run this code
# NOT RUN {
# if every individual has a different subpopulation, weights are uniform:
subpops <- 1:10
weights <- weights_subpops(subpops)
stopifnot(all(weights == rep.int(1/10,10)))

# subpopulations can be strings too
subpops <- c('a', 'b', 'c')
weights <- weights_subpops(subpops)
stopifnot(all(weights == rep.int(1/3,3)))

# if there are two subpopulations
# and the first has twice as many individuals as the second
# then the individuals in this first subpopulation weight half as much 
# as the ones in the second subpopulation
subpops <- c(1, 1, 2)
weights <- weights_subpops(subpops)
stopifnot(all(weights == c(1/4,1/4,1/2)))

# }

Run the code above in your browser using DataLab