Phi*_*hil 13 ubuntu r random-seed
我当前正在运行R版本3.1.0(在Ubuntu 12.04 LTS上),并且由于我的R版本和操作系统都已经过时,我计划同时更新两者。但是,我有很多依赖set.seed()的模拟,并且我希望它们在更新R和操作系统后仍能给我相同的随机数。
所以我的问题是三个方面。
bsc*_*idr 24
如果在不手动更改默认值或的情况下在两个不同的操作系统上安装了R,RProfile使用时应该得到同样的结果set.seed()。
过去set.seed()在R版本中会产生相同的结果,但是由于R 3.6.0中的一个小宣布更新,这种情况通常不再适用。因此,您可以比较R 3.6.0之前的版本之间的跨版本一致性,但是如果将3.6.0之后的使用与set.seed()3.6.0之前的使用进行比较set.seed(),则会得到不同的结果。
您可以在以下示例中看到:
> set.seed(1999)
> sample(LETTERS, 3)
[1] "T" "N" "L"
Run Code Online (Sandbox Code Playgroud)
> set.seed(1999)
> sample(LETTERS, 3)
[1] "T" "N" "L"
Run Code Online (Sandbox Code Playgroud)
set.seed(1999)
sample(LETTERS, 3)
[1] "D" "Z" "R"
Run Code Online (Sandbox Code Playgroud)
不一致的原因是,在R 3.6.0中,更改了引擎盖下随机数生成器的默认类型。现在,为了获得set.seed()匹配的结果,您必须首先调用函数RNGkind(sample.kind = "Rounding")。
> 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"
Run Code Online (Sandbox Code Playgroud)