R:如果加载了插入符号包,则set.seed()结果不匹配

Ind*_*ngh 6 r random-seed r-caret

createFolds()在R(版本:3.3.0)中使用来创建训练/测试分区.为了使结果可重复,我使用set.seed()种子值为10.正如预期的那样,结果(生成的折叠)是可重复的.

但是,一旦我在设定种子之后加载了插入包.然后使用createFolds函数,我发现创建的折叠是不同的(虽然仍然可以重现).

具体而言,创建的折叠在以下两种情况下有所不同:

情况1:

library(caret)
set.seed(10)
folds=createFolds(y,k=5,returnTrain=TRUE)
Run Code Online (Sandbox Code Playgroud)

案例2:

set.seed(10)
library(caret)
folds=createFolds(y,k=5,returnTrain=TRUE)
Run Code Online (Sandbox Code Playgroud)

哪里y是矢量.

为什么会发生这种情况?

Rol*_*and 3

罪魁祸首是ggplot2,加载时附加的它丢失了。它定义了一个.onAttach函数:https://github.com/hadley/ggplot2/blob/master/R/zzz.r

附加包时会调用此函数,请参阅help("ns-hooks")。并在其内部runif被称为从而推进RNG的状态。