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

R:来自独立随机发生器的样本,r,random,random-sample,R,Random,Random Sample,我有一个像这样的R代码 D1 <- runif(0,1); D2 <- runif(0,1); U1 <- runif(0,1); U2 <- runif(0,1); 我事先不知道每次分发多少次 要求一个新号码。所以我无法将其存储在数组中 建议?可能是这样的: library(rngtools) Dseeds <- RNGseq(2, seed = 1) Useeds <- RNGseq(2, seed = 2) RNGseed(Dseeds[[

我有一个像这样的R代码

D1 <- runif(0,1); 
D2 <- runif(0,1); 
U1 <- runif(0,1); 
U2 <- runif(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
库(rngtools)

你的问题毫无意义。如果需要不同的发行版,则需要将不同的参数传递给
runif
。种子不是你需要考虑的东西。另外,你应该解释一下你想用这个实现什么。嵌套的
while
循环对性能来说是致命的。同样
runif(0,1)
将返回一个零长度向量。从性能站点,我将生成大量随机数并从中提取。只要确保生成足够的数字,以涵盖所有可能性。如果由于内存使用而无法实现,我只需生成100000个随机数,并检查它们是否都在循环中使用过。如果是,生成新的数字。但更一般地说,我同意@Roland的观点,你的问题现在相当模糊。@Roland我正在考虑撤回我的问题,因为它看起来很混乱。我希望Ds和Us的分布相同(平坦),但我希望Ds始终是相同的序列,与我在一个D和另一个D之间对Us采样的次数无关。如果你实现@PaulHiemstra的建议,那应该很容易。生成两组足够大的随机数,并从中获取值。不要收回你的问题。改进它。
nD1 == D1 
nD2 == D2 
nU1 == U1 
nU2 == U2 
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