R set.seed不会产生一致的结果

时间:2017-03-26 03:47:31

标签: r random

我使用主R函数从不同的脚本调用一系列R函数。为了重现结果,我在主脚本的开头set.seed。在代码中,sample()用于从dataframe中的function_8rand()中的function_6随机选择几行。因此,简单的工作流程如下所示:

### 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() 后,function_8中的
  • function_9将获得第23,44,50,95,98行
  • 但是,可以通过开始新的R会话来重现结果。

所以,我想知道是否有人可以就这种情况如何正确set.seed给我一些建议? THX提前!

更新

根据删除的评论,我将种子数更改为123,这会产生一组一致的结果。但我很感激有人可以提供任何深入的解释!

1 个答案:

答案 0 :(得分:2)

也许系列111只有相同的字符,不会改变功能8,你可能想要生成一个基于时间的随机种子,这里是a previous answer,它可以帮助你使用系统时间。 / p>