【问题标题】:How to reset a seed value [closed]如何重置种子值
【发布时间】:2016-11-03 11:06:29
【问题描述】:

有什么办法可以去掉种子值?我刚刚运行了一个示例代码,如下所示

set.seed(912)
sample(10)

我得到了以下结果。

[1]  5  8  2 10  9  3  4  7  1  6

现在我该如何停止种子值。我没有保存就关闭了我的 R 会话,并在重新打开后运行了与上面相同的代码,并以相同的顺序得到了结果。

我从一个与种子相关的问题中得到了以下代码,但这也没有用。

set.seed(Sys.time())

【问题讨论】:

  • ?set 说了一些关于.Random.seed 的内容,这是您要找的吗?
  • 尝试set.seed(seed = NULL); sample(10)(“如果用seed = NULL 调用它,它会重新初始化(参见“注意”),就好像还没有设置任何种子一样。”)
  • @docendodiscimus 我运行了相同的代码set.seed(seed = NULL) 然后set.seed(912); sample(10) 但我又得到了相同的序列[1] 5 8 2 10 9 3 4 7 1 6
  • 我不确定,remove 是什么意思。试试这个执行顺序set.seed(912); sample(10); sample(10)。第一个和第二个输出不同。
  • 也许# set.seed(912) ?

标签: r


【解决方案1】:

这是来自帮助菜单的脚本 - 我在这篇文章中找到了它:Questions about set.seed() in R

rm(.Random.seed, envir=globalenv())

这是一个例子:

> set.seed(912)
> rm(.Random.seed, envir=globalenv())
> sample(10)
 [1]  1  8  2 10  3  4  6  7  9  5
> set.seed(912)
> rm(.Random.seed, envir=globalenv())
> sample(10)
 [1]  2  9  3  4 10  7  6  8  1  5
> set.seed(912)
> rm(.Random.seed, envir=globalenv())
> sample(10)
 [1]  3 10  7  8  5  2  1  4  9  6

希望这会有所帮助。

如果您不关心设置种子,您始终可以只执行示例 (10) 而无需设置种子以返回不同的示例。

【讨论】:

  • 如果您再次设置相同的种子,您将在样本上得到相同的结果,如果在 rm(....) 之后您没有设置.seed,那么您将获得不同的样本
  • 完美解决我的问题,谢谢!!!
猜你喜欢
  • 1970-01-01
  • 2018-04-22
  • 2011-03-25
  • 2020-04-09
  • 2018-02-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-31
相关资源
最近更新 更多