如何强制加载库以在R中生成可重现的代码?

时间:2015-09-09 05:35:59

标签: r r-caret

我正在设计一个实验,我将使用set.seed()初始设置种子并执行许多加载所需库的函数。我打算在具有不同种子值的多台机器上运行相同的代码。

在进行一些初步测试时,我很惊讶我无法在同一个会话中重现结果(当然我当时没有意识到会话是罪魁祸首)。在尝试各种调试后,我终于发现在R中加载某些库会修改.Random.seed,例如在新会话中执行以下代码

set.seed(123)
sample(1000, 3)

set.seed(123)
require("caret")
sample(1000, 3)

set.seed(123)
require("caret")
sample(1000, 3)

sample声明的结果是

288 788 409
409 883 939
288 788 409

我期待第二个和第三个sample语句生成相同的序列。

有没有办法强制在R中加载库,这样我可以重现结果而不记得每次重启会话?文档中的任何地方都提到caret在加载种子时修改种子?

0 个答案:

没有答案