Last data update: 2014.03.03

R: Directly Getting or Setting the RNG Seed
RNGseedR Documentation

Directly Getting or Setting the RNG Seed

Description

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)

Results