[R-pkg-devel] Change in normal random numbers between R 3.5.3 and R 3.6.0
On 09/05/2019 9:15 a.m., Ulrike Gr?mping wrote:
Dear R package authors, I am currently struggling with differences in test results between R versions 3.5.3 and 3.6.0: There are expected ones (from the new behavior of sample(), which can be switched off by RNGkind(sample.kind="Rounding")) and unexpected ones: The normal random numbers from a call "y <- rnorm(36)" have changed between R versions, in spite of working with a seed. Consequently, most other outcomes change as well, as they depend on those random numbers. Does anyone have an idea what this behavior results from ? You see samples below (ignore the first columns, these can be made alike by changing sample.kind; but the normal random numbers in the last column were the bottom ones before version 3.6.0 and are the top ones afterwards.
< 1 200 10 -25 -2.07823754 < 2 150 30 25 0.48522682 < 3 200 20 -25 0.69676878 ...
1 250 10 -15 -0.820426525 2 200 10 -25 -1.238082813 3 100 10 15 -1.199567511
... Can anyone explain, why this is the case, or how I could possibly circumvent it (for some noLD checks)?
I am not seeing a difference in rnorm(), but I would expect to see one if the new sample() code was used, as it can make a different number of calls to the underlying RNG. That is: I'd expect this code to give identical results in both versions, whether I used val <- 10 or any other value: val <- 10 set.seed(val) rnorm(36) This code does not give identical results, because the calls to sample() will result in different changes to the seed: val <- 10 set.seed(val) discard <- sample(1000, 100) rnorm(36) Duncan Murdoch