[R] How to stop set.seed() besides exiting out of R?

William Dunlap wdunlap at tibco.com
Mon Mar 18 20:59:53 CET 2013


I am not sure of this, but I think you can unset the seed by removing the dataset .Random.seed
from the global environment.  E.g.,

> set.seed(1)
> runif(5)
[1] 0.2655087 0.3721239 0.5728534 0.9082078 0.2016819
> rm(list=".Random.seed", envir=globalenv())
> runif(5)
[1] 0.5952379 0.3355091 0.8820192 0.7633754 0.8064312
>
>
> set.seed(1)
> runif(5) # same as before
[1] 0.2655087 0.3721239 0.5728534 0.9082078 0.2016819
> rm(list=".Random.seed", envir=globalenv())
> runif(5) # different
[1] 0.52023610 0.73407695 0.08824484 0.26977430 0.80089250

Bill Dunlap
Spotfire, TIBCO Software
wdunlap tibco.com

> -----Original Message-----
> From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] On Behalf
> Of Nordlund, Dan (DSHS/RDA)
> Sent: Monday, March 18, 2013 12:44 PM
> To: C W
> Cc: r-help
> Subject: Re: [R] How to stop set.seed() besides exiting out of R?
> 
> No, you cannot unset the seed.  You can set it to a different value, but a the random
> number generators always need a starting seed.  If you don’t set one, R will set one for
> you , you just won’t know what it is.  And as a practical matter, given a sequence of
> random numbers you can’t tell what the starting seed was.  That is the point of good
> random number generators.  Each sequence of random numbers for most intents and
> purposes can be considered independent from previous sets of numbers.
> 
> Hope this is helpful,
> 
> Dan
> 
> Daniel J. Nordlund
> Washington State Department of Social and Health Services
> Planning, Performance, and Accountability
> Research and Data Analysis Division
> Olympia, WA 98504-5204
> 
> From: C W [mailto:tmrsg11 at gmail.com]
> Sent: Monday, March 18, 2013 12:19 PM
> To: Nordlund, Dan (DSHS/RDA)
> Cc: r-help
> Subject: Re: [R] How to stop set.seed() besides exiting out of R?
> 
> Yes, I agree with you.  I guess what I was really looking for is a function like
> UNset.seed()?
> 
> By having set.seed(), I can have reproducible code.  But what if I want to check my work
> against what's produced from set.seed(100)?
> 
> I really want to escape from the shadow of set.seed(), can I unset it?
> On Mon, Mar 18, 2013 at 3:07 PM, Nordlund, Dan (DSHS/RDA)
> <NordlDJ at dshs.wa.gov<mailto:NordlDJ at dshs.wa.gov>> wrote:
> As I understand it, how R “‘normally” does it is to use the system clock to set the seed
> once per session, unless you use set.seed() to set a new seed. You chose to set the seed
> to a different value.  But from that point on, the pseudo random number generation
> continues  in the same way it “normally” does.  In your code below, each of your 100
> histograms will be different.  If you then execute the for loop again (but not the
> set.seed(100) statement), you will get a different set of histograms.  The only way you
> would be “confined to set.seed(100)” is if you keep resetting the seed to 100.
> 
> Dan
> 
> Daniel J. Nordlund
> Washington State Department of Social and Health Services
> Planning, Performance, and Accountability
> Research and Data Analysis Division
> Olympia, WA 98504-5204
> From: C W [mailto:tmrsg11 at gmail.com<mailto:tmrsg11 at gmail.com>]
> Sent: Monday, March 18, 2013 11:50 AM
> To: Nordlund, Dan (DSHS/RDA)
> Cc: r-help
> Subject: Re: [R] How to stop set.seed() besides exiting out of R?
> 
> set.seed(100)
> for (i in 1:100){
>     a <- rnorm(1000, mean=0, sd=1)
>     hist(a)
> }
> 
> #Now say, I want to simulate without being confined to set.seed(100), I just want to get
> a simulation like how R "normally" does it.
> 
> Mike
> On Mon, Mar 18, 2013 at 2:40 PM, Nordlund, Dan (DSHS/RDA)
> <NordlDJ at dshs.wa.gov<mailto:NordlDJ at dshs.wa.gov><mailto:NordlDJ at dshs.wa.gov<
> mailto:NordlDJ at dshs.wa.gov>>> wrote:
> > -----Original Message-----
> > From: r-help-bounces at r-project.org<mailto:r-help-bounces at r-project.org><mailto:r-
> help-bounces at r-project.org<mailto:r-help-bounces at r-project.org>> [mailto:r-help-
> bounces at r-<mailto:r-help-bounces at r-><mailto:r-help-bounces at r-<mailto:r-help-
> bounces at r->>
> > project.org<http://project.org><http://project.org>] On Behalf Of C W
> > Sent: Monday, March 18, 2013 11:27 AM
> > To: r-help
> > Subject: [R] How to stop set.seed() besides exiting out of R?
> >
> > Hi list,
> >
> > I am curious how to stop the set.seed(), I don't want the same repeated
> > random number.  I know I can set it to a different seed, but I don't
> > want
> > to go through the trouble of setting different seed every time.
> >
> > Thanks,
> > Mike
> >
> Can you show us how you are using set.seed() that results in getting the same sequence
> repeatedly?  If you are doing simulations in a loop, then set the seed once, outside the
> loop.  Otherwise, I am not sure what you are doing that causes problems.  A reproducible
> example would really help.
> 
> Dan
> 
> Daniel J. Nordlund
> Washington State Department of Social and Health Services
> Planning, Performance, and Accountability
> Research and Data Analysis Division
> Olympia, WA 98504-5204
> 
> ______________________________________________
> R-help at r-project.org<mailto:R-help at r-project.org><mailto:R-help at r-
> project.org<mailto:R-help at r-project.org>> mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
> 
>         [[alternative HTML version deleted]]
> 
> 
> ______________________________________________
> R-help at r-project.org<mailto:R-help at r-project.org> mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
> 
> 
> 	[[alternative HTML version deleted]]



More information about the R-help mailing list