Is set.seed consistent over different versions of R (and Ubuntu)?

后端 未结 2 1542
花落未央
花落未央 2020-11-27 06:12

I am currently running R version 3.1.0 (on Ubuntu 12.04 LTS) and as both my R version and my operating system is getting rather old, I plan on updating both. However, I have

相关标签:
2条回答
  • 2020-11-27 06:49

    Having tested on several R versions (3.1.0, 3.3.1, 3.4.2) and two different machines (Windows 7 x64, Windows 10 x64), I got the same runif() random numbers with the same set.seed() independently of the R versions and the operating system. As far as I know, this suggests a yes for both questions 1 and 2.

    0 讨论(0)
  • 2020-11-27 06:56

    Cross-OS consistency: yes

    If you installed R on two different operating systems without manually changing defaults or the RProfile, you should get the same results when using set.seed().

    Consistency over versions of R: not necessarily

    It used to be the case that set.seed() would give the same results across R versions, but that's no longer generally true thanks to a little-announced update in R 3.6.0. So you can get cross version consistency comparing results before R 3.6.0, but if you compare a post-3.6.0 use of set.seed() to a pre-3.6.0 use of set.seed(), you will get different results.

    You can see that in the examples below:

    R 3.2.0

    > set.seed(1999)
    > sample(LETTERS, 3)
    [1] "T" "N" "L"
    

    R 3.5.3

    > set.seed(1999)
    > sample(LETTERS, 3)
    [1] "T" "N" "L"
    

    R 3.6.0

    set.seed(1999)
    sample(LETTERS, 3)
    [1] "D" "Z" "R"
    

    The reason for the inconsistency is that in R 3.6.0, the default kind of under-the-hood random-number generator was changed. Now, in order to get the results from set.seed() to match, you have to first call the function RNGkind(sample.kind = "Rounding").

    R 3.6.0

    > RNGkind(sample.kind = "Rounding")
    Warning message:
    In RNGkind(sample.kind = "Rounding") : non-uniform 'Rounding' sampler used
    > set.seed(1999)
    > sample(Letters, 3)
    [1] "T" "N" "L"
    
    0 讨论(0)
提交回复
热议问题