Functions related to generating random seeds and utilising them for reproducibility.

gen_seed()

set_seed(seed)

fix_seed(reset = FALSE)

with_seed(seed, expression)

pull_seed(x)

Arguments

seed

The random seed to be used

reset

Should the fixed seed be forced to reset

expression

expression to be evaluated

x

object to extract the seed from

Value

gen_seed() returns a single numeric value

with_seed() returns the value of the evaluated expression after with the relevant seed as an attribute (if required)

pull_seed() returns a single numeric value

fix_seed() and set_seed() do not return anything

Details

Random values are generated based on the current seed used by the R system. This means by deliberately setting a seed in R, we can make work reproducible.

Functions

  • gen_seed: Generates a random seed, which can be used in set_seed()

  • set_seed: Sets the current seed

  • fix_seed: Resets the seed to re-run code

  • with_seed: Evaluates the expression after setting the seed. If seed is TRUE, then it first generates a seed using gen_seed(). Results are output with the seed attached (if set).#'

  • pull_seed: Extracts the seed used to generate the results of with_seed()

Examples

my_seed <- gen_seed() set_seed(my_seed) r_norm(n=10)
#> [1] -1.0571018 -1.5072919 0.1207109 -0.1105901 -0.7025600 -0.1372067 #> [7] 1.1565282 -2.1143908 1.3294188 0.4709546
set_seed(my_seed) r_norm(n=10)
#> [1] -1.0571018 -1.5072919 0.1207109 -0.1105901 -0.7025600 -0.1372067 #> [7] 1.1565282 -2.1143908 1.3294188 0.4709546
fix_seed() r_norm(n=3)
#> [1] -1.1223793 0.2976979 -0.3536340
fix_seed() r_norm(n=3)
#> [1] -1.1223793 0.2976979 -0.3536340
fix_seed(reset=TRUE) r_norm(n=3)
#> [1] -0.8487979 0.7073074 0.8885189
res <- with_seed(my_seed, r_norm(n = 10)) res
#> [1] -1.0571018 -1.5072919 0.1207109 -0.1105901 -0.7025600 -0.1372067 #> [7] 1.1565282 -2.1143908 1.3294188 0.4709546 #> attr(,"seed") #> [1] 1241451070
pull_seed(res)
#> [1] 1241451070