`sample()` дает разные значения с одинаковым `set.seed()` - программирование
Подтвердить что ты не робот

`sample()` дает разные значения с одинаковым `set.seed()`

Я создавал некоторые случайные образцы и замышлял их и замечал странное поведение. Сэмплированные значения были разными после загрузки 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 может изменить начальное значение?

4b9b3361

Ответ 1

Я думаю, что я видел некоторое обсуждение этого вопроса в одном из чатов: 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 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)
}

Как-то забавно, что один из случайно сгенерированных подсказок подсказывает, как отключить советы...