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,
simplify = FALSE,
...
)
# S3 method for class 'generic_spct'
pull_sample(x, size = 1, replace = FALSE, keep.order = TRUE, ...)
# S3 method for class 'generic_mspct'
pull_sample(
x,
size = 1,
replace = FALSE,
recursive = FALSE,
keep.order = TRUE,
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.- 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.

## 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`

.

## Methods (by class)

`pull_sample(default)`

: Default for generic function`pull_sample(list)`

: Specialization for generic_spct`pull_sample(generic_spct)`

: Specialization for generic_spct`pull_sample(generic_mspct)`

: Specialization for generic_mspct

## 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)
#> $D
#> [1] "d"
#>
#> $K
#> [1] "k"
#>
#> $L
#> [1] "l"
#>
#> $N
#> [1] "n"
#>
#> $O
#> [1] "o"
#>
#> $P
#> [1] "p"
#>
#> $R
#> [1] "r"
#>
#> $Y
#> [1] "y"
#>
pull_sample(a.list, size = 8, keep.order = FALSE)
#> $M
#> [1] "m"
#>
#> $B
#> [1] "b"
#>
#> $J
#> [1] "j"
#>
#> $Y
#> [1] "y"
#>
#> $Q
#> [1] "q"
#>
#> $R
#> [1] "r"
#>
#> $K
#> [1] "k"
#>
#> $H
#> [1] "h"
#>
pull_sample(a.list, size = 8, replace = TRUE)
#> $A
#> [1] "a"
#>
#> $C
#> [1] "c"
#>
#> $G
#> [1] "g"
#>
#> $G.copy1
#> [1] "g"
#>
#> $I
#> [1] "i"
#>
#> $I.copy1
#> [1] "i"
#>
#> $N
#> [1] "n"
#>
#> $W
#> [1] "w"
#>
pull_sample(a.list, size = 8, replace = TRUE, keep.order = FALSE)
#> $Y
#> [1] "y"
#>
#> $J
#> [1] "j"
#>
#> $G
#> [1] "g"
#>
#> $D
#> [1] "d"
#>
#> $U
#> [1] "u"
#>
#> $N
#> [1] "n"
#>
#> $S
#> [1] "s"
#>
#> $P
#> [1] "p"
#>
pull_sample(a.list, size = 1)
#> $R
#> [1] "r"
#>
pull_sample(a.list, size = 1, simplify = TRUE)
#> [1] "v"
```