我正在创建一些随机样本并绘制它们,注意到了一个奇怪的行为。在加载ggplot2后,抽样值不同:
set.seed(111)
library(ggplot2)
sample(1:10, 10)
# [1] 8 4 5 3 7 1 6 2 10 9
set.seed(111)
sample(1:10, 10)
# [1] 6 7 3 4 8 10 1 2 9 5
我可以轻松避免这种行为,但是ggplot2更改种子值的原因是什么?
我记得在 R 聊天室中看到了一些关于这个问题的讨论:ggplot2
会调用随机数生成器来决定是否以及要提示什么。
具体来说,这是 ggplot2:::.onAttach
:
function (...)
{
if (!interactive() || stats::runif(1) > 0.1)
return()
tips <- c("Need help? Try the ggplot2 mailing list: http://groups.google.com/group/ggplot2.",
paste("Find out what's changed in ggplot2 with\n", "news(Version == \"",
utils::packageVersion("ggplot2"), "\", package = \"ggplot2\")",
sep = ""), "Use suppressPackageStartupMessages to eliminate package startup messages.")
tip <- sample(tips, 1)
packageStartupMessage(tip)
}
有趣的是,随机生成的提示之一告诉你如何关闭提示...
"
ggplot2
正在使用随机种子进行某些操作(可重复)。实验总是好的 :-) - Carl Witthoft