R:来自独立随机发生器的样本

时间:2014-11-10 14:50:32

标签: r random random-sample

我有一个这样的R代码。

D1 <- runif(0,1); 
D2 <- runif(0,1); 
U1 <- runif(0,1); 
U2 <- runif(0,1); 

但我不希望Ds和我们使用相同的发行版!!

我该怎么做这样的事情?

distrD <- rand(seed1) 
distrU <- rand(seed2) 

D1 <- distrD.runif(0,1); 
D2 <- distrD.runif(0,1); 
U1 <- distrU.runif(0,1); 
U2 <- distrU.runif(0,1); 

distr_D <- rand(seed1) 
distr_U <- rand(seed2) 

nD1 <- distr_D.runif(0,1); 
nU1 <- distr_U.runif(0,1); 
nU2 <- distr_U.runif(0,1); 
nD2 <- distr_D.runif(0,1); 

给出随机数字:

nD1 == D1 
nD2 == D2 
nU1 == U1 
nU2 == U2 

我事先并不知道每次分发的次数 问了一个新号码。所以我无法将其存储在数组中。

建议?

1 个答案:

答案 0 :(得分:1)

也许是这样的:

library(rngtools)

Dseeds <- RNGseq(2, seed = 1)
Useeds <- RNGseq(2, seed = 2)

RNGseed(Dseeds[[1]])
D1 <- runif(1, 0, 1)
RNGseed(Dseeds[[2]])
D2 <- runif(1, 0, 1)
RNGseed(Useeds[[1]])
U1 <- runif(1, 0, 1) 
RNGseed(Useeds[[2]])
U2 <- runif(1, 0, 1) 

RNGseed(Dseeds[[1]])
nD1 <- runif(1, 0, 1)
RNGseed(Useeds[[1]])
nU1 <- runif(1, 0, 1)
RNGseed(Useeds[[2]])
nU2 <- runif(1, 0, 1)
RNGseed(Dseeds[[2]])
nD2 <- runif(1, 0, 1)

nD1 == D1 
#[1] TRUE
nD2 == D2 
#[1] TRUE
nU1 == U1 
#[1] TRUE
nU2 == U2 
#[1] TRUE

尽可能多地抽取种子(可能需要高估)。如果您需要更多,可以使用RNGseq(n, Dseeds[[2]])[-1]

之类的内容

当然,最好绘制两个随机数样本(每次设置种子)并在生成每个样本后存储种子,以便在需要产生额外时将种子重置为该值其中一个样本的randoms。