Learn R Programming

mosaic (version 1.9.1)

resample: More Random Samples

Description

These functions simplify and unify sampling in various ways.

Usage

resample(..., replace = TRUE)

deal(...)

shuffle(x, replace = FALSE, prob = NULL, groups = NULL, orig.ids = FALSE)

sample(x, size, replace = FALSE, ...)

# S3 method for default sample( x, size, replace = FALSE, prob = NULL, groups = NULL, orig.ids = FALSE, ... )

# S3 method for data.frame sample( x, size, replace = FALSE, prob = NULL, groups = NULL, orig.ids = TRUE, fixed = names(x), shuffled = c(), invisibly.return = NULL, ... )

# S3 method for matrix sample( x, size, replace = FALSE, prob = NULL, groups = NULL, orig.ids = FALSE, ... )

# S3 method for factor sample( x, size, replace = FALSE, prob = NULL, groups = NULL, orig.ids = FALSE, drop.unused.levels = FALSE, ... )

# S3 method for lm sample( x, size, replace = FALSE, prob = NULL, groups = NULL, orig.ids = FALSE, drop.unused.levels = FALSE, parametric = FALSE, transformation = NULL, ... )

Arguments

...

additional arguments passed to base::sample() or sample().

replace

Should sampling be with replacement?

x

Either a vector of one or more elements from which to choose, or a positive integer.

prob

A vector of probability weights for obtaining the elements of the vector being sampled.

groups

a vector (or variable in a data frame) specifying groups to sample within. This will be recycled if necessary.

orig.ids

a logical; should original ids be included in returned data frame?

size

a non-negative integer giving the number of items to choose.

fixed

a vector of column names. These variables are shuffled en masse, preserving associations among these columns.

shuffled

a vector of column names. these variables are reshuffled individually (within groups if groups is specified), breaking associations among these columns. examples.

invisibly.return

a logical, should return be invisible?

drop.unused.levels

a logical, should unused levels be dropped?

parametric

A logical indicating whether the resampling should be done parametrically.

transformation

NULL or a function providing a transformation to be applied to the synthetic responses. If NULL, an attempt it made to infer the appropriate transformation from the original call as recorded in x.

Details

These functions are wrappers around sample() providing different defaults and natural names.

Examples

Run this code
# 100 Bernoulli trials -- no need for replace=TRUE
resample(0:1, 100)
tally(resample(0:1, 100))
if (require(mosaicData)) {
Small <- sample(KidsFeet, 10)
resample(Small)
tally(~ sex, data=resample(Small))
tally(~ sex, data=resample(Small))
# fixed marginals for sex
tally(~ sex, data=Small)
tally(~ sex, data=resample(Small, groups=sex)) 
# shuffled can be used to reshuffle some variables within groups
# orig.id shows where the values were in original data frame.
Small <- mutate(Small, 
   id1 = paste(sex,1:10, sep=":"),  
   id2 = paste(sex,1:10, sep=":"))
resample(Small, groups=sex, shuffled=c("id1","id2"))
}
deal(Cards, 13)    # A Bridge hand
shuffle(Cards)
model <- lm(width ~length * sex, data = KidsFeet)
KidsFeet |> head()
resample(model) |> head()
Boot <- do(500) * lm(width ~ length * sex, data = resample(KidsFeet))
df_stats(~ Intercept + length + sexG + length.sexG, data = Boot, sd)
head(Boot)
summary(coef(model))


Run the code above in your browser using DataLab