r - R中相同的种子,不同的操作系统,不同的随机数

标签 r random operating-system random-seed

我在两台机器和一个 linux 服务器之间遇到了不一致的结果,直到我意识到修复种子有不同的效果。我正在运行不同的R所有版本中的所有版本,均高于 3.3.0 .以下是示例:

Linux 1

> set.seed(10); rnorm(1)
[1] -0.4463588
> version
               _
platform       x86_64-pc-linux-gnu
arch           x86_64
os             linux-gnu
system         x86_64, linux-gnu
status
major          3
minor          3.0
year           2016
month          05
day            03
svn rev        70573
language       R
version.string R version 3.3.0 (2016-05-03)
nickname       Supposedly Educational

Linux 2
> set.seed(10); rnorm(1)
[1] 0.01874617
> version
               _
platform       x86_64-pc-linux-gnu
arch           x86_64
os             linux-gnu
system         x86_64, linux-gnu
status
major          3
minor          4.2
year           2017
month          09
day            28
svn rev        73368
language       R
version.string R version 3.4.2 (2017-09-28)
nickname       Short Summer

Mac 操作系统
> set.seed(10); rnorm(1)
[1] 0.01874617
> version
               _                           
platform       x86_64-apple-darwin15.6.0   
arch           x86_64                      
os             darwin15.6.0                
system         x86_64, darwin15.6.0        
status                                     
major          3                           
minor          4.3                         
year           2017                        
month          11                          
day            30                          
svn rev        73796                       
language       R                           
version.string R version 3.4.3 (2017-11-30)
nickname       Kite-Eating Tree        

window
> set.seed(10); rnorm(1)
[1] 0.01874617
> version
               _                           
platform       x86_64-w64-mingw32          
arch           x86_64                      
os             mingw32                     
system         x86_64, mingw32             
status                                     
major          3                           
minor          4.1                         
year           2017                        
month          06                          
day            30                          
svn rev        72865                       
language       R                           
version.string R version 3.4.1 (2017-06-30)
nickname       Single Candle               

Linux 从同一个种子生成不同的随机数,从而使在其上运行的脚本的结果无法完全重现(取决于重新运行它们的操作系统,结果是否一致)。这很烦人。

我不知道这里发生了什么。特别:
  • (1) R 是否有问题?的版本或更多的东西?
  • (2) 如何避免这种不一致的行为?任何帮助表示赞赏。

  • 编辑 源自@Jesse Tweedle 答案(在 Linux 1 中的新 session 中输出):
    > set.seed(10); rnorm(1)
    [1] -0.4463588
    > set.seed(10); rnorm(1)
    [1] -0.4463588
    > set.seed(102); rnorm(1)
    [1] 0.05752965
    > set.seed(10, kind = "Mersenne-Twister"); rnorm(1)
    [1] 0.01874617
    > set.seed(10); rnorm(1)
    [1] 0.01874617
    > set.seed(102); rnorm(1)
    [1] 0.1805229
    

    最佳答案

    来自文档:

    Random docs :
    RNGversion can be used to set the random generators as they were in an earlier R version (for reproducibility).
    所以在所有系统上试试这个:

    set.seed(10, kind = "Mersenne-Twister", normal.kind = "Inversion"); rnorm(1)
    [1] 0.01874617
    

    关于r - R中相同的种子,不同的操作系统,不同的随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48626086/

    相关文章:

    R:从函数输出中使用 save() 保存 list() 时的奇怪行为

    operating-system - 为什么发出陷阱不是特权任务?

    c - 在 XV6 中执行停止的进程

    python - 根据随机数打开唯一的文本文件

    python - Numpy random.choice 概率之和不等于 1

    c - windows操作系统中如何识别RAM地址空间?

    r - 在ggplot中绘制具有多个变量的线

    java - RSelenium - Java 启用

    css - R Shiny : resizing the entire app by 50% as if you're doing it on the browser

    java - 生成大量字母以供将来操作的最佳方法