每次打开 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/