每次打开 R 控制台时,随机种子都会设置为相同的值。在我的电脑上(在你的电脑上可能是一样的),如果我运行 rnorm(1) ,我总是在第一次调用时得到 0.1777571

我尝试通过添加类似的东西使用计算机当前时间自动设置随机种子

set.seed(
   as.integer(
      as.numeric(
         gsub("[^0-9]","",paste(format(Sys.time(), "%Y %X %x")))
      )%%.Machine$integer.max
   )
)

在文件 .Rprofile 中,但它不会改变任何东西。第一次调用 rnorm(1) 总是返回 0.1777571

如何自动将随机种子设置为计算机当前时间?

编辑

我直接在终端上打开 R session 。我只是点击了 r 并且没有显式加载任何以前的工作区。

最佳答案

set.seed 的文档说了一些有趣的事情:



您描述的行为与加载先前工作区时恢复的先前版本 .Random.seed 一致,这似乎必须在运行 .RProfile 中的代码之后。

另一个有趣的事情是文档表明,简单地使用 set.seed(NULL) 可以用更少的工作完成你想要的那种事情。

这是 R 邮件列表中讨论此问题的线程:https://stat.ethz.ch/pipermail/r-help/2010-October/255734.html

关于r - 如何在当前时间自动设置随机种子?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42982672/

10-13 08:07