伪 RNG 的不同行为取决于 R 的版本

Flo*_*art 3 random r

我观察到伪 RNG 的不同行为取决于 R 的版本(参见下面的代码)。

有人可以向我解释这种行为差异吗?

此致,

> version; set.seed(1); rnorm(3); sample(1:100, 10);
               _                           
platform       x86_64-conda_cos6-linux-gnu 
arch           x86_64                      
os             linux-gnu                   
system         x86_64, linux-gnu           
status                                     
major          3                           
minor          5.1                         
year           2018                        
month          07                          
day            02                          
svn rev        74947                       
language       R                           
version.string R version 3.5.1 (2018-07-02)
nickname       Feather Spray               
[1] -0.6264538  0.1836433 -0.8356286
 [1] 95 66 62  6 20 17 65 36 71 46
Run Code Online (Sandbox Code Playgroud)
> version; set.seed(1); rnorm(3); sample(1:100, 10);
               _                           
platform       x86_64-apple-darwin13.4.0   
arch           x86_64                      
os             darwin13.4.0                
system         x86_64, darwin13.4.0        
status                                     
major          3                           
minor          6.0                         
year           2019                        
month          04                          
day            26                          
svn rev        76424                       
language       R                           
version.string R version 3.6.0 (2019-04-26)
nickname       Planting of a Tree          
[1] -0.6264538  0.1836433 -0.8356286
 [1] 87 43 14 82 59 51 85 21 54 74
Run Code Online (Sandbox Code Playgroud)

Ben*_*sen 5

sample在 3.6.0 版本中进行了更改。来自https://stat.ethz.ch/pipermail/r-announce/2019/000641.html

  • 从离散均匀分布生成的默认方法(sample()例如,在 中使用)已更改。这解决了奥托博尼和斯塔克指出的事实,即以前的方法sample()在大量人群上明显不均匀。请参阅 PR#17494 进行讨论。如果需要重现旧结果,可以请求使用先前的方法RNGkind(),或者如果需要的话。RNGversion()感谢邓肯·默多克 (Duncan Murdoch) 提供的补丁以及加布·贝克尔 (Gabe Becker) 的进一步帮助。

    的输出RNGkind()已更改为还返回 所使用的“种类” sample()

PR#17494 显示在此处https://bugs.r-project.org/show_bug.cgi?id=17494