set.seed
Control Random Number Generator

Description

Sets and inspects the state of the random number generator.

Usage

set.seed(seed, kind = NULL, normal.kind = NULL) 
RNGkind(kind = NULL, normal.kind = NULL)
RNGversion(vstr)
.Random.seed

Arguments

seed NULL or an integer value used to set the state of the random uniform generator. Each random uniform generator interprets the integer value in its own way. NULL means to choose a seed based on the time, a counter, and other information likely to produce a unique values.
kind can be either a string or NULL (the default). If it is a string, it specifies the name of the desired random uniform generator. It must be one of "Wichmann-Hill", "Marsaglia-Multicarry", "Super-Duper", "Mersenne-Twister", "Knuth-TAOCP", "user-supplied", "Knuth-TAOCP-2002", "L'Ecuyer-CMRG" and "default", or an unambiguous abbreviation of one of those. Currently "default" is equivalent to "Mersenne-Twister".

Currently, only the "Mersenne-Twister" and "L'Ecuyer-CMRG" generators are supported and all attempts to set another one result in a warning.

normal.kind can be either a string or NULL (the default). If it is a string, it specifies the name of the desired random normal generator. It must be one of "Buggy Kinderman-Ramage", "Ahrens-Dieter", "Box-Muller", "user-supplied", "Inversion", "Kinderman-Ramage" and "default", or an unambiguous abbreviation of one of those. Currently "default" is equivalent to "Inversion".

Currently, only the "Inversion" normal generator is supported and all attempts to set another one result in a warning.

vstr a character string representing the R version number to be compatible with. Only the major and minor version numbers are used in RNGversion.

Currently only version number 1.7 or later is supported.

Details

Value

RNGkindreturns the previous kind and normal kind invisibly if at least one of kind or normal.kind is supplied with a new value. Returns the current kind and normal kind visibly if neither kind nor normal.kind is supplied.
set.seedreturns NULL invisibly.
RNGversionreturns the previous kind and normal kind invisibly.
Side Effects
set.seed, RNGkind, and RNGversion set the value of the .Random.seed object in the global environment. .Random.seed gives the state of the random number generation system.
Copyrights
M. Matsumoto and T. Nishimura generously made the Mersenne Twister code available for free use, even in commercial products. It was available under the GNU Public License until 2001, but the authors changed to a much more liberal licensing policy then. Their copyright notice follows A C-program for MT19937, with initialization improved 2002/1/26. Coded by Takuji Nishimura and Makoto Matsumoto.

Copyright (C) 1997 - 2002, Makoto Matsumoto and Takuji Nishimura, All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

3. The names of its contributors may not be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Any feedback is very welcome. http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/emt.html email: m-mat \@ math.sci.hiroshima-u.ac.jp (remove space)

References
Kennedy, W. J. and Gentle, J. E. (1980). Statistical Computing. Marcel Dekker, New York.
Marsaglia, G. et al. (1973). Random Number Package: "Super-Duper". School of Computer Science, McGill University.
M. Matsumoto and T. Nishimura, "Mersenne Twister: A 623-dimensionally equidistributed uniform pseudorandom number generator",
ACM Trans. on Modeling and Computer Simulation Vol. 8, No. 1, January pp.3-30 (1998)
A preprint of that paper can be found at
http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/ARTICLES/mt.pdf
Source code at http://www.math.keio.ac.jp/~matumoto/emt.html.
Venables, W.N. & Ripley B.D. (1997). Modern Applied Statistics with S-PLUS (2nd ed.). New York: Springer-Verlag.
R Development Core Team (2008). R: A Language and Environment for Statistical Computing Vienna, Austria: R Foundation for Statistical Computing.
Ahrens, J. H. and Dieter, U. (1973) Extensions of Forsythe's method for random sampling from the normal distribution. Mathematics of Computation 27, 927-937.
Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole. (set.seed, storing in .Random.seed.)
Box, G. E. P. and Muller, M. E. (1958) A note on the generation of normal random deviates. Annals of Mathematical Statistics 29, 610--611.
De Matteis, A. and Pagnutti, S. (1993) Long-range Correlation Analysis of the Wichmann-Hill Random Number Generator, Statist. Comput., 3, 67--70.
Kinderman, A. J. and Ramage, J. G. (1976) Computer generation of normal random variables. Journal of the American Statistical Association 71, 893-896.
Knuth, D. E. (1997) The Art of Computer Programming. Volume 2, third edition.
Source code at http://www-cs-faculty.stanford.edu/~knuth/taocp.html.
Knuth, D. E. (2002) The Art of Computer Programming. Volume 2, third edition, ninth printing.
See http://Sunburn.Stanford.EDU/~knuth/news02.html.
Marsaglia, G. (1997) A random number generator for C. Discussion paper, posting on Usenet newsgroup sci.stat.math on September 29, 1997.
Marsaglia, G. and Zaman, A. (1994) Some portable very-long-period random number generators. Computers in Physics, 8, 117--121.
Reeds, J., Hubert, S. and Abrahams, M. (1982--4) C implementation of SuperDuper, University of California at Berkeley. (Personal communication from Jim Reeds to Ross Ihaka.)
Wichmann, B. A. and Hill, I. D. (1982) Algorithm AS 183: An Efficient and Portable Pseudo-random Number Generator, Applied Statistics, 31, 188--190; Remarks: 34, 198 and 35, 89.
See Also
rbeta, rcauchy, rchisq, rexp, rf, rgamma, rlogis, rlnorm, rnorm, rstab, rt, runif, rbinom, rgeom, rhyper, rpois, rwilcox, sample.
Examples
# Make sure the new session is started!
RNGkind()  # Returns "Mersenne-Twister" "Inversion" 
#.Random.seed   # Not created yet, so an error is generated

# kind and normal.kind are set and .Random.seed is created. RNGkind("L'Ecuyer-CMRG", "default") .Random.seed # 407 ... ... ....

# kind = "Mersenne-Twister" normal.kind = "Inversion" RNGversion("2.13.0")

# to reproduce random samples, start with a specified random seed: set.seed(1, "Mersenne", "Inversion") runif(5) # do some work set.seed(1, "Mersenne", "Inversion") # set the same seed again old.seed <- .Random.seed # store the seed runif(5) # repeat work: the same "random" numbers occur.

.Random.seed <<- old.seed # Reset .Random.seed in global environment runif(5) # repeat work: the same "random" numbers occur.

Package base version 4.0.0-28
Package Index