【发布时间】:2017-08-18 21:12:35
【问题描述】:
我正在使用一个主 R 函数从不同的脚本调用一系列 R 函数。为了重现结果,我在我的主脚本的开头set.seed。在代码中,sample() 函数从function_8 中的dataframe 和function_6 中的rand() 中随机选择几行。所以一个简单的工作流程如下:
### Main R Function
library(dplyr)
set.seed(111)
### Begin calling other R scripts
output_1 <- function_1(...)
...
output_10 <- function_10(...)
### End Main R Function
最近,我意识到如果我对不包含任何随机化的function_9 进行更改。从function_8 生成的随机数发生变化。例如,
-
sample()中的function_8将在更新function_9之前获得第 2、15、23、50、54 行。 -
sample()infunction_8将在更新function_9后获得第 23、44、50、95、98 行 - 但是,可以通过启动新的 R 会话来重现结果。
所以,我想知道是否有人可以就在这种情况下如何正确set.seed 给我一些建议?提前谢谢!
更新
根据已删除的评论,我将种子编号更改为 123,这会产生一组一致的结果。但是,如果有人可以提供任何深入的解释,我将不胜感激!
【问题讨论】:
-
您能否提供一个可重现的示例,示例 function_1 到 10(或至少 6、8 和 9)?