我观察到伪 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)
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。