[R] Restoring .Random.seed

Talbot Katz topkatz at msn.com
Thu May 31 23:15:19 CEST 2007


Thanks!  The "get / assign" combination does just what I want, and the 
warning about the pre-existence of .Random.seed was very helpful.  As for 
set.seed, I have used it to create a replicable state (in fact, I have an 
option to use it in the function I was writing that prompted my query), but 
I didn't see any indication that it could be used to restore a state for 
which you don't necessarily know the seed.

I got a couple of good offlist responses, too.  One person told me about the 
"<<-" assignment operator (with an admonishment to use it judiciously).  
Another responder mentioned the setRNG package, which has a specific 
methodology for saving the random number generator state.

--  TMK  --
212-460-5430	home
917-656-5351	cell



>From: Prof Brian Ripley <ripley at stats.ox.ac.uk>
>To: Talbot Katz <topkatz at msn.com>
>CC: r-help at stat.math.ethz.ch
>Subject: Re: [R] Restoring .Random.seed
>Date: Thu, 31 May 2007 20:57:09 +0100 (BST)
>
>On Thu, 31 May 2007, Talbot Katz wrote:
>
>>Hi.
>>
>>Suppose I have a function which does some random number generation within.
>>The random number generation inside the function changes the value of
>>.Random.seed in the calling environment.  If I want to restore the
>                ^^^^^^^^^^^^^^^^^^^^^^^^^^
>That is your misunderstanding.  From the help page
>
>      The object '.Random.seed' is only looked for in the user's
>      workspace.
>
>which seems plain enough.  So, you can do
>
>save.seed <- get(".Random.seed", .GlobalEnv)
>assign(".Randon.seed", save.seed, .GlobalEnv)
>
>to save and restore, *provided* that random numbers have been used in the 
>session (or .Random.seed will not exist).
>
>However, the help recommends using set.seed(), and why not follow the 
>advice?
>
>>pre-function call .Random.seed, I can do:
>>
>>save.seed<-.Random.seed
>>result<-myfunction()
>>.Random.seed<-save.seed
>>
>>Is there a way to do the restoration inside the function?  I tried putting
>>the "save.seed<-.Random.seed" and ".Random.seed<-save.seed" statements
>>inside the function, but that didn't work.
>
>As documented on the help page.
>
>[...]
>
>--
>Brian D. Ripley,                  ripley at stats.ox.ac.uk
>Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
>University of Oxford,             Tel:  +44 1865 272861 (self)
>1 South Parks Road,                     +44 1865 272866 (PA)
>Oxford OX1 3TG, UK                Fax:  +44 1865 272595



More information about the R-help mailing list