pull_sample: Random sample of spectra

View source: R/mspct.sample.R

pull_sampleR Documentation

Random sample of spectra

Description

A method to extract a random sample of members from a list, a collection of spectra or a spectrum object containing multiple spectra in long form.

Usage

pull_sample(x, size, ...)

## Default S3 method:
pull_sample(x, size, ...)

## S3 method for class 'list'
pull_sample(
  x,
  size = 1,
  replace = FALSE,
  keep.order = TRUE,
  method = "random",
  simplify = FALSE,
  ...
)

## S3 method for class 'generic_spct'
pull_sample(
  x,
  size = 1,
  replace = FALSE,
  keep.order = TRUE,
  method = "random",
  ...
)

## S3 method for class 'generic_mspct'
pull_sample(
  x,
  size = 1,
  replace = FALSE,
  keep.order = TRUE,
  method = "random",
  recursive = FALSE,
  simplify = FALSE,
  ...
)

Arguments

x

An R object possibly containing multiple spectra or other components.

size

integer The number of spectra to extract, if available.

...

currently ignored.

replace

logical Sample with or without replacement.

keep.order

logical Return the spectra ordered as in x or in random order.

method

character Use "random" for random sampling or "equal.steps" for systematic sampling.

simplify

logical If size = 1, and x is a collection return the spectrum object instead of a collection with it as only member.

recursive

logical If x is a collection, expand or not member spectra containing multiple spectra in long form into individual members before sampling.

Details

This function calls sample() to generate a random set of indexes, or a regular sequence, and uses it to extract members from lists or collections. Method "equal.steps" is most useful for time series of spectra. With recursive = TRUE lists and list-like collections are first flattened, and with recursive = FALSE sampling is applied to the topmost level only.

Value

If x is an spectrum object, such as a "filter_spct" object, the returned object is of the same class but in most cases containing fewer spectra in long form than x. If x is a collection of spectrum objecta, such as a "filter_mspct" object, the returned object is of the same class but in most cases containing fewer member spectra than x.

See Also

See sample for the method used for the sampling.

Examples

a.list <- as.list(letters)
names(a.list) <- LETTERS
set.seed(12345678)
pull_sample(a.list, size = 8)
pull_sample(a.list, size = 7, method = "equal.steps")
pull_sample(a.list, size = 8, keep.order = FALSE)
pull_sample(a.list, size = 8, replace = TRUE)
pull_sample(a.list, size = 8, replace = TRUE, keep.order = FALSE)
pull_sample(a.list, size = 1)
pull_sample(a.list, size = 1, simplify = TRUE)

set.seed(12345678)
pull_sample(sun_evening.spct, 2)
set.seed(12345678)
pull_sample(sun_evening.mspct, 2)


photobiology documentation built on Sept. 15, 2026, 9:06 a.m.