>>>>> Ulrike Grömping >>>>> on Fri, 10 May 2019 06:39:39 +0200 writes:
> Mark, > I used > if (getRversion()>="3.6.0") RNGkind(sample.kind="Rounding") > And that works. Actually, using rnorm afterwards also > yields the same random numbers. Yes, "of course", 'sample.kind' was only introduced into 3.6.0. We had always recommended RNGversion("3.5.0") possibly wrapped in suppressWarnings(). That *does* work in old and new versions of R. Note that in R >= 3.6.0 , e.g., inside your if(.) { ** } you could also use set.seed(<n>, sample.kind="Rounding") Martin > My question arose from the fact that I confused myself about the noLD output I was supposed to reproduce. Therefore, my problem should be entirely explained by Duncan Murdoch's initial explanation: the sample() change does not only lead to different results in discrete sampling but also to different results from random number calls for other functions (like rnorm) *IFF* callled after sample() [etc]. So yes, do call RNGversion("3.5.0") before set.seed() before the first call to sample() / sample.int() or functions using those [or 'rwilcox()', see its help in R >= 3.6.0!]. Martin > Best, Ulrike > Am 10.05.2019 um 04:58 schrieb R. Mark Sharp: >> I was dealing with a similar issue but in the context of getting the same unit test code to work on multiple versions of R in a Travis-CI build. It seems RNGkind(sample.kind="Rounding”) does not work prior to version 3.6 so I resorted to using version dependent construction of the argument list to set.seed() in do.call(). >> >> I better solution will be greatly appreciated. >> >> #' Work around for unit tests using sample() >> #' >> #' @param seed argument to \code{set.seed} >> set_seed <- function(seed = 1) { >> version <- as.integer(R.Version()$major) + (as.numeric(R.Version()$minor) / 10.0) >> if (version >= 3.6) { >> args <- list(seed, sample.kind = "Rounding") >> } else { >> args <- list(seed) >> } >> suppressWarnings(do.call(set.seed, args)) >> } >> >> Mark >> >> R. Mark Sharp, Ph.D. >> Data Scientist and Biomedical Statistical Consultant >> 7526 Meadow Green St. >> San Antonio, TX 78251 >> mobile: 210-218-2868 >> rmsh...@me.com >> >> >> >> >> >> >> >> >> >> >> >>> On May 9, 2019, at 12:45 PM, Duncan Murdoch <murdoch.dun...@gmail.com> wrote: >>> >>> On 09/05/2019 12:43 p.m., Ulrike Grömping wrote: >>>> Hmmmh, but does that also apply if the sample.kind has been set to the >>>> old version? I.e., would >>>> if (getRversion()>="3.6.0") RNGkind(sample.kind="Rounding") >>>> val <- 10 >>>> set.seed(val) >>>> discard <- sample(1000, 100) >>>> rnorm(36) >>>> produce the same normal random numbers in 3.5.3 and 3.6.0? I would have >>>> expected it to, but it seems to produce the same normal random numbers >>>> as R version 3.6.0 in the previous version of the test code without the >>>> RNGkind call. >>> I'm not seeing that, but I'm not using the exact versions you tested. If I run your code in "R version 3.5.2 (2018-12-20)" and "R Under development (unstable) (2019-05-02 r76454)" I get this output from both: >>> >>>> if (getRversion()>="3.6.0") RNGkind(sample.kind="Rounding") >>>> val <- 10 >>>> set.seed(val) >>>> discard <- sample(1000, 100) >>>> rnorm(36) >>> [1] -0.4006375 -0.3345566 1.3679540 2.1377671 0.5058193 0.7863424 -0.9022119 0.5328970 -0.6458943 0.2909875 -1.2375945 >>> [12] -0.4561763 -0.8303227 0.3401156 1.0663764 1.2161258 0.7356907 -0.4812086 0.5627448 -1.2463197 0.3809222 -1.4304273 >>> [23] -1.0484455 -0.2185036 -1.4899362 1.1727063 -1.4798270 -0.4303878 -1.0516386 1.5225863 0.5928281 -0.2226615 0.7128943 >>> [34] 0.7166008 0.4402419 0.1588306 >>> >>> Okay, I just installed 3.6.0, and I get the same values there. I don't see a Mac binary for 3.5.3, so I can't test that one. >>> >>> Duncan Murdoch >>> >>> ______________________________________________ >>> R-package-devel@r-project.org mailing list >>> https://stat.ethz.ch/mailman/listinfo/r-package-devel > -- > ############################################## > ## Prof. Ulrike Groemping > ## FB II > ## Beuth University of Applied Sciences Berlin > ############################################## > ## prof.beuth-hochschule.de/groemping > ## Phone: +49(0)30 4504 5127 > ## Fax: +49(0)30 4504 66 5127 > ## Home office: +49(0)30 394 04 863 > ############################################## > ______________________________________________ > R-package-devel@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-package-devel ______________________________________________ R-package-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-package-devel