【问题标题】:Different Set.seed sample function results with same versions of R in different OS在不同操作系统中使用相同版本的 R 的不同 Set.seed 样本函数结果
【发布时间】:2021-10-20 02:51:45
【问题描述】:

我在设置种子后尝试使用示例函数,分别在Mac电脑和windows 10电脑上运行代码。但是,即使设置种子,使用示例函数也会有不同的结果。

例如:

在 Mac 电脑中:

> set.seed(1)
> sample(100,3)
[1] 68 39 1

在 Windows 计算机中:

> set.seed(1)
> sample(100,3)
[1] 27 37 57

但是,rnorm 函数工作正常:

> set.seed(2)
> rnorm(3)
[1] -0.8969145  0.1848492  1.5878453

有人遇到同样的问题吗? R 版本是 4.1.1。

【问题讨论】:

  • 也可以设置kind

标签: r random-seed


【解决方案1】:

您还必须设置kind:

set.seed(1, "Mersenne-Twister", sample.kind="Rounding")
sample(100,3)
#[1] 27 37 57

set.seed(1, "Mersenne-Twister", sample.kind="Rejection")
sample(100,3)
#[1] 68 39  1

【讨论】:

    【解决方案2】:

    此问题的一个可能原因是其中一台计算机仍在使用错误的sample() 算法,因为它已保存在工作区中并在您启动 R 时重新加载。

    您可以通过运行RNGkind() 查看正在使用哪些sample() 算法。 我看到[1] "Mersenne-Twister" "Inversion" "Rejection" ,表明我正在使用 Mersenne twister 进行制服,反演法线和拒绝离散采样。

    【讨论】:

      猜你喜欢
      • 2011-12-01
      • 1970-01-01
      • 2012-04-05
      • 2021-01-25
      • 1970-01-01
      • 2017-10-06
      • 1970-01-01
      • 2018-07-15
      • 1970-01-01
      相关资源
      最近更新 更多