[Rd] package load altering RNG state
Henric Winell
nilsson.henric at gmail.com
Tue Feb 7 16:31:05 CET 2017
On 2017-02-07 15:59, Martin Maechler wrote:
>>>>>> Henric Winell <nilsson.henric at gmail.com>
>>>>>> on Tue, 7 Feb 2017 13:37:42 +0100 writes:
>
> > Hi, On 2017-02-07 13:12, Benjamin Tyner wrote:
>
> >> Hello
> >>
> >> When loading a package, I'm wondering if it's frowned
> >> upon for the package to alter the state of the random
> >> number generator? I guess not, since the parallel package
> >> does it?
>
> > Surprisingly it is not frowned upon, but it *is* a
> > nuisance. I brought it up a couple of years ago
>
> > http://r.789695.n4.nabble.com/parallel-package-changes-Random-seed-td4686321.html
>
> > along with a patch, but was told off...
>
> >>
> >> > set.seed(6860) > old.seed <- .GlobalEnv$.Random.seed >
> >> library(parallel) > new.seed <- .GlobalEnv$.Random.seed >
> >> identical(old.seed, new.seed) [1] FALSE
> >>
> >> I ask because, I found myself writing a custom wrapper
> >> around library() to restore the original RNG state, in
> >> order to increase reproducibility. But now wondering if
> >> others would welcome such a feature to be added to base
> >> R? Either something very general like
> >>
> >> preserveRNGstate(library(parallel))
> >>
> >> or perhaps an specific enhancement to library itself?
>
> > I would very much welcome a change, but in the light of
> > things it doesn't seem likely.
>
> > Henric Winell
>
> Sometimes things change ... and not always for the worse. I've
> found a version of your original patch idea which is very
> efficient nice (in my eyes) and still leaves
> system.time(loadNamespace("parallel"))
> to round to 0, i.e. needing less than 1 ms.
>
> --> in R-devel svn rev 72136
Many thanks for this, Martin!
Henric
>
> Martin
>
More information about the R-devel
mailing list