RNGseed directly gets/sets the current RNG seed
.Random.seed. It can typically be used to backup
and restore the RNG state on exit of functions, enabling
local RNG changes.
RNGrecovery recovers from a broken state of
.Random.seed, and reset the RNG settings to
defaults.
Usage
RNGseed(seed)
RNGrecovery()
Arguments
seed
an RNG seed, i.e. an integer vector. No
validity check is performed, so it must be a
valid seed.
Value
invisibly the current RNG seed when called with no
arguments, or the – old – value of the seed before
changing it to seed.
Examples
# get current seed
RNGseed()
# directly set seed
old <- RNGseed(c(401L, 1L, 1L))
# show old/new seed description
showRNG(old)
showRNG()
# set bad seed
RNGseed(2:3)
try( showRNG() )
# recover from bad state
RNGrecovery()
showRNG()
# example of backup/restore of RNG in functions
f <- function(){
orng <- RNGseed()
on.exit(RNGseed(orng))
RNGkind('Marsaglia')
runif(10)
}
sample(NA)
s <- .Random.seed
f()
identical(s, .Random.seed)