[Rd] package load altering RNG state
Martin Maechler
maechler at stat.math.ethz.ch
Tue Feb 7 15:59:58 CET 2017
>>>>> 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
Martin
More information about the R-devel
mailing list