These functions simplify and unify sampling in various ways.
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, ...)
Should sampling be with replacement?
Either a vector of one or more elements from which to choose, or a positive integer.
A vector of probability weights for obtaining the elements of the vector being sampled.
a vector (or variable in a data frame) specifying groups to sample within. This will be recycled if necessary.
a logical; should origianal ids be included in returned data frame?
a non-negative integer giving the number of items to choose.
a vector of column names. These variables are shuffled en masse, preserving associations among these columns.
a vector of column names.
these variables are reshuffled individually (within groups if groups
is
specified), breaking associations among these columns.
examples.
a logical, should return be invisible?
a logical, should unused levels be dropped?
These functions are wrappers around sample
providing different defaults and
natural names.
# NOT RUN {
# 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)
# }
Run the code above in your browser using DataLab