gpt4 book ai didi

r - 在 R 4.2.1 上设置种子

转载 作者:行者123 更新时间:2023-12-02 01:30:32 24 4
gpt4 key购买 nike

我在使用“set.seed()”时遇到一些问题。我的 R 版本是 4.2.1,因此为了获得与 R 3.5 或更早版本相同的结果

set.seed(1)

我的理解是我应该使用

set.seed(1, sample.kind = "Rounding")

但是 R 返回以下警告:

Warning message:In set.seed(1, sample.kind = "Rounding") :non-uniform 'Rounding' sampler used

但是,结果仍然不匹配。我正在网上进行测试,所以我不知道他们希望我提供的答案,但有了警告消息,我在某种程度上确信它与“set.seed()”有关。

最佳答案

来自帮助(set.seed):

 ‘sample.kind’ can be ‘"Rounding"’ or ‘"Rejection"’, or partial    
matches to these. The former was the default in versions prior to
3.6.0: it made ‘sample’ noticeably non-uniform on large
populations, and should only be used for reproduction of old
results. See PR#17494 for a discussion.

要真正获得 R 3.6.0 或更高版本来重现之前的抽签,需要不同的参数。已经过去几年了,但我想我们之前在 SO 讨论过这个问题......

编辑:使用 Docker 和帮助页面进行一些探索是无法解决的(鉴于我作为其作者,这里有一些 r-base 图像) :

edd@rob:~$ docker run --rm -ti r-base:3.4.4 Rscript -e 'set.seed(123); sample(1:10, 3)'
[1] 3 8 4
edd@rob:~$ docker run --rm -ti r-base:4.2.1 Rscript -e 'set.seed(123); sample(1:10, 3)'
[1] 3 10 2
edd@rob:~$ docker run --rm -ti r-base:4.2.1 Rscript -e 'RNGversion("3.4.4"); set.seed(123); sample(1:10, 3)'
Warning message:
In RNGkind("Mersenne-Twister", "Inversion", "Rounding") :
non-uniform 'Rounding' sampler used
[1] 3 8 4
edd@rob:~$

这里我们有

  1. 一组 3 8 4,从 3.4.4 下的 1:10 采样(更改前)
  2. 使用当前 4.2.1 从 1:10(在同一种子下)采样的不同集合 3 10 2 证明“是的,Veronica,sample() 已更改”
  3. 因为 R 是严肃的,实际上,如果我们要求的话,我们可以在当前版本下恢复行为。

还不错。但是,是的,您在当前 R 下看到的警告显然是正常的。

关于r - 在 R 4.2.1 上设置种子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73396883/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com