【问题标题】:I'm using set.seed() but getting different answers in each run [closed]我正在使用 set.seed() 但在每次运行中得到不同的答案[关闭]
【发布时间】:2018-10-18 21:28:08
【问题描述】:

我想如果我在函数中使用set.seed(),那么每次我运行该函数时都会使用相同的种子,我会得到相同的准随机输出。举个例子:

my_fun <- function(n, v1, v2){
  set.seed = 42
  return(runif(n, v1, v2))
}
my_fun(1,2,3)
#> [1] 2.078126
my_fun(1,2,3)
#> [1] 2.918556
my_fun(1,2,3)
#> [1] 2.189768

我希望每次使用相同的输入运行该函数时都会得到相同的结果。你能给我一些关于我为什么不这样做的教育吗?

【问题讨论】:

  • set.seed(42).
  • 你所做的并没有播下种子。它将 set.seed 函数更改为数字。
  • 所以这是我的错字......耶稣......我正在删除 q
  • 我不能删除它,因为你们都非常有帮助......所以我的耻辱将生活在耻辱中。
  • 唯一合理的解决方案是删除您的帐户。

标签: r


【解决方案1】:

set.seed() 是一个函数,它需要一个参数,该参数等于您想要为伪随机数生成器 (prng) 提供种子的值。种子是用于开始生成数字的值。大多数 prng 将使用当前时间作为默认值,但是当您将种子传递给它时,您正在确定起始值,因此所有值也将在它之后。

所以你需要这样称呼它 set.seed(42) 适当地设置你的种子

这是另一个问题,它很好地回答了这个函数实际上在做什么https://stats.stackexchange.com/questions/86285/random-number-set-seedn-in-r

【讨论】:

    猜你喜欢
    • 2021-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-12
    • 1970-01-01
    • 2022-01-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多