sample_with_replacement()

Sample items from a list with replacement.

Synopsis

sample_with_replacement(list-expression, expression)
sample_with_replacement(list-expression, expression, weight-list-expression)

Description

This function returns a list of values randomly sampled from the first argument with replacement. The number of samples is specified by the second argument.

An optional, weight list can be specified in order to set a normalized probability for the correspdonding index in the sample pool list being drawn. For example, a weight list: list(1, 0, 1) will have a 50% chance that the element with index 0, will be selected, a 50% chance that the element with index 2 will be selected, and a 0% chance that the element with index 1 will be selected.

Parameters

list-expression

An expression that evaluates to the list to select from.

expression

An expression that evaluates to the number of samples to return

weight-list-expression

An expression that evaluates to the list of weights to be used in the sampling.

Returns

The function returns a list. The returned list is empty if the first argument evaluates to an empty list or if the second argument evaluates to 0.

Examples

Example of an un-weighted sampling:

x_list = list(1, 2, 3, 4, 5, 6, 7)
sample_list = sample_with_replacement(x_list, 4)
# possible result: sample_list = list(5, 2, 7, 2)

Example of a weighted sampling:

x_list = list(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)

weight_list = apply(x_list, pow(_, 2))
# weight_list = list(1, 4, 9, 16, 25, 36, 49, 64, 81, 100)

sample_list = sample_with_replacement(x_list, 4, weight_list)
# possible result: sample_list = list(10, 9, 7, 9)

Note

Each call to the function returns a distinct random sample.

See Also

list() sample_without_replacement()