Fast survey sampling algorithms for R. All functions return indices for easy subsetting.

Installation

# From GitLab
remotes::install_gitlab("dickoa/sondage")

Usage

library(sondage)

# Use built-in US state data
data(state)
states <- as.data.frame(state.x77)

# Simple random sample: 10 states
idx <- srs(10, nrow(states))
states[idx, ]

# Unequal probability sampling: probability proportional to population
pik <- inclusion_prob(states$Population, n = 10)
idx <- up_maxent(pik)
states[idx, ]

# Batch sampling for simulations (returns n × nrep matrix)
sim_cps <- up_maxent(pik, nrep = 10000)

Functions

Equal probability:

Unequal probability:

Joint inclusion probabilities :

Utilities:

Method comparison

Method Fixed n Exact π All π_kl > 0
up_maxent
up_brewer
up_systematic
up_poisson
up_multinomial ✓ (with replacement)
up_chromy

References

Brewer, K.R.W. and Donadio, M.E. (2003). The High Entropy Variance of the Horvitz-Thompson Estimator. Survey Methodology, 29(2), 189-196.

Tillé, Y. (2006). Sampling Algorithms. Springer.