Handler function providing easy access and uniform syntax to the various implemented repeated sampling techniques. See the Details section below for further information.
Usage
resample(
x,
n,
k,
method = c("rswor", "srswor", "stratified_rswor", "balanced_rswor", "permutation",
"kfolds", "stratified_kfolds", "balanced_kfolds", "leave_p_out", "leave_one_out",
"rswr", "srswr", "stratified_rswr", "balanced_rswr", "bootstrap"),
prob = NULL,
undersample = FALSE
)Arguments
- x
either an integer representing the population size, or a vector of stratification variables
- n
integer, either the sample size or the number of elements to holdout
- k
integer, the number of repeated samples to generate. Used as the number of folds in k-fold sampling
- method
character string, one of the supported sampling techniques
- prob
(optional) vector of positive numeric values, the probability weights for obtaining the elements from the population. If provided, its length must match the population size
- undersample
logical, whether to remove elements from the population in order to try to obtain balanced data
Value
An object of class resampling.
Details
This function internally calls one of the implemented functions for
repeated sampling based on the value of the method argument:
"rswor""srswor""stratified_rswor""balanced_rswor""permutation""kfolds""stratified_kfolds""balanced_kfolds""leave_p_out""leave_one_out""rswr""srswr""stratified_rswr""balanced_rswr""bootstrap"
See the specific function help page for further details on the implemented methodology.
Examples
#Set seed for reproducibility
set.seed(seed = 5381L)
#Random sampling without replacement
resample(
x = 10,
n = 5,
k = 2,
method = "rswor"
)
#>
#> 2 samples taken from a population of 10 elements by using random
#> sampling without replacement.
#>
#> sampleNumber sample sampleSize holdoutSize
#> 1 1 1, 9, 7, 2, ... 5 5
#> 2 2 3, 4, 1, 8, ... 5 5
#>
#Simple random sampling without replacement
resample(
x = 10,
n = 5,
k = 2,
method = "srswor"
)
#>
#> 2 samples taken from a population of 10 elements by using simple random
#> sampling without replacement.
#>
#> sampleNumber sample sampleSize holdoutSize
#> 1 1 8, 1, 7, 4, ... 5 5
#> 2 2 5, 2, 8, 6, ... 5 5
#>
#Permutation
resample(
x = 10,
k = 2,
method = "permutation"
)
#>
#> 2 samples taken from a population of 10 elements by using permutation
#> sampling.
#>
#> sampleNumber sample sampleSize holdoutSize
#> 1 1 5, 4, 8, 1, ... 10 0
#> 2 2 7, 10, 5, , ... 10 0
#>
#Stratified random sampling without replacement
resample(
x = c(rep("a", 3),rep("b", 6)),
n = 6,
k = 2,
method = "stratified_rswor"
)
#>
#> 2 samples taken from a population of 9 elements by using stratified
#> random sampling without replacement.
#>
#> sampleNumber sample sampleSize holdoutSize
#> 1 1 7, 3, 4, 1, ... 6 3
#> 2 2 3, 1, 4, 9, ... 6 3
#>
#Balanced random sampling without replacement
resample(
x = c(rep("a", 3),rep("b", 6)),
n = 6,
k = 2,
method = "balanced_rswor"
)
#>
#> 2 samples taken from a population of 9 elements by using balanced
#> random sampling without replacement.
#>
#> sampleNumber sample sampleSize holdoutSize
#> 1 1 3, 1, 8, 6, ... 6 3
#> 2 2 1, 9, 3, 8, ... 6 3
#>
#K-folds sampling
resample(
x = 10,
k = 3,
method = "kfolds"
)
#>
#> 3 samples taken from a population of 10 elements by using random k-fold
#> sampling.
#>
#> sampleNumber sample sampleSize holdoutSize
#> 1 1 1, 3, 4, 7, ... 6 4
#> 2 2 1, 2, 5, 6, ... 7 3
#> 3 3 2, 3, 4, 5, ... 7 3
#>
#Stratified k-folds sampling
resample(
x = c(rep("a", 3),rep("b", 6)),
k = 3,
method = "stratified_kfolds"
)
#>
#> 3 samples taken from a population of 9 elements by using stratified
#> k-fold sampling.
#>
#> sampleNumber sample sampleSize holdoutSize
#> 1 1 1, 3, 5, 7, ... 6 3
#> 2 2 1, 2, 4, 5, ... 6 3
#> 3 3 2, 3, 4, 6, ... 6 3
#>
#Balanced k-folds sampling (balanced population)
resample(
x = c(rep(1,6),rep(2,6)),
k = 3,
method = "balanced_kfolds"
)
#>
#> 3 samples taken from a population of 12 elements by using balanced
#> k-fold sampling.
#>
#> sampleNumber sample sampleSize holdoutSize
#> 1 1 1, 4, 5, 6, ... 8 4
#> 2 2 2, 3, 4, 5, ... 8 4
#> 3 3 1, 2, 3, 6, ... 8 4
#>
#Balanced k-folds sampling (unbalanced population)
resample(
x = c(rep(1,6),rep(2,12)),
k = 3,
method = "balanced_kfolds",
undersample = TRUE
)
#>
#> 3 samples taken from a population of 18 elements by using balanced
#> k-fold sampling.
#>
#> sampleNumber sample sampleSize holdoutSize
#> 1 1 1, 2, 3, 6, ... 8 4
#> 2 2 1, 4, 5, 6, ... 8 4
#> 3 3 2, 3, 4, 5, ... 8 4
#>
#Leave-p-out sampling
resample(
x = 5,
n = 2,
method = "leave_p_out"
)
#>
#> 10 samples taken from a population of 5 elements by using leave-p-out
#> sampling.
#>
#> sampleNumber sample sampleSize holdoutSize
#> 1 1 3, 4, 5 3 2
#> 2 2 2, 4, 5 3 2
#> 3 3 2, 3, 5 3 2
#> 4 4 2, 3, 4 3 2
#> 5 5 1, 4, 5 3 2
#> ...
#>
#Leave-one-out sampling
resample(
x = 5,
method = "leave_one_out"
)
#>
#> 5 samples taken from a population of 5 elements by using leave-one-out
#> sampling.
#>
#> sampleNumber sample sampleSize holdoutSize
#> 1 1 1, 2, 3, 5 4 1
#> 2 2 2, 3, 4, 5 4 1
#> 3 3 1, 2, 3, 4 4 1
#> 4 4 1, 2, 4, 5 4 1
#> 5 5 1, 3, 4, 5 4 1
#>
#Random sampling with replacement
resample(
x = 10,
n = 5,
k = 2,
method = "rswr"
)
#>
#> 2 samples taken from a population of 10 elements by using random
#> sampling with replacement.
#>
#> sampleNumber sample sampleSize holdoutSize
#> 1 1 10, 6, 6, , ... 5 8
#> 2 2 8, 1, 9, 2, ... 5 5
#>
#Simple random sampling with replacement
resample(
x = 10,
n = 5,
k = 2,
method = "srswr"
)
#>
#> 2 samples taken from a population of 10 elements by using simple random
#> sampling with replacement.
#>
#> sampleNumber sample sampleSize holdoutSize
#> 1 1 1, 9, 7, 1, ... 5 6
#> 2 2 2, 4, 10, , ... 5 6
#>
#Stratified random sampling with replacement
resample(
x = c(rep("a", 3),rep("b", 6)),
n = 6,
k = 2,
method = "stratified_rswr"
)
#>
#> 2 samples taken from a population of 9 elements by using stratified
#> random sampling with replacement.
#>
#> sampleNumber sample sampleSize holdoutSize
#> 1 1 1, 8, 8, 8, ... 6 5
#> 2 2 5, 6, 6, 3, ... 6 4
#>
#Balanced random sampling with replacement
resample(
x = c(rep("a", 3),rep("b", 6)),
n = 6,
k = 2,
method = "balanced_rswr"
)
#>
#> 2 samples taken from a population of 9 elements by using balanced
#> random sampling with replacement.
#>
#> sampleNumber sample sampleSize holdoutSize
#> 1 1 4, 9, 2, 1, ... 6 5
#> 2 2 2, 1, 7, 5, ... 6 4
#>
#Bootstrap sampling
resample(
x = 10,
k = 2,
method = "bootstrap"
)
#>
#> 2 samples taken from a population of 10 elements by using ordinary
#> bootstrap sampling.
#>
#> sampleNumber sample sampleSize holdoutSize
#> 1 1 7, 5, 3, 6, ... 10 2
#> 2 2 4, 6, 1, 7, ... 10 4
#>