有没有人对set.seed根据操作系统(OS)给出不同结果的情况有任何经验.我记得在R之前的类中遇到过类似的情况,之前有些人使用rnorm生成不同的随机序列,尽管将起始种子设置为相同的值.现在,我自己开课,并没有遇到与rnorm相同的问题; 无论操作系统如何,所有学生都能获得相同的顺序 有趣的是,MASS包的mvrnorm函数似乎存在同样的问题.
任何见解将不胜感激 - 马克
这个例子:
require(MASS)
set.seed(123)
a <- rnorm(10, mean=10, sd=3)
b <- rnorm(10, mean=5, sd=2)
df <- data.frame(a,b)
C <- cov(df)
M <- mvrnorm(n=10, c(10,5), C)
df
C
M
Run Code Online (Sandbox Code Playgroud)
我的Windows 7 OS 64位版本的R 2.14.1上的产量:
> df
a b
1 8.318573 7.448164
2 9.309468 5.719628
3 14.676125 5.801543
4 10.211525 5.221365
5 10.387863 3.888318
6 15.145195 8.573826
7 11.382749 5.995701
8 6.204816 1.066766
9 7.939441 6.402712
10 8.663014 4.054417
> C
a b
a 8.187336 3.431373
b …Run Code Online (Sandbox Code Playgroud) 我的随机数略有不同,具体取决于操作系统(Mac vs Linux):
set.seed(890458, kind="Mersenne-Twister", normal.kind="Inversion")
print(rlnorm(1504)[1504], digits=22)
sessionInfo()
Run Code Online (Sandbox Code Playgroud)
Linux的:
> set.seed(890458, kind="Mersenne-Twister", normal.kind="Inversion")
> print(rlnorm(1504)[1504], digits=22)
[1] 2.732876214731374542311
> sessionInfo()
R version 3.4.0 (2017-04-21)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Debian GNU/Linux 9 (stretch)
Matrix products: default
BLAS: /usr/lib/libblas/libblas.so.3.7.0
LAPACK: /usr/lib/lapack/liblapack.so.3.7.0
locale:
[1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C
[3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8
[5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8
[7] LC_PAPER=en_US.UTF-8 LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
loaded via a namespace (and not attached):
[1] compiler_3.4.0 …Run Code Online (Sandbox Code Playgroud)