生成随机布尔向量的最快方法

Mus*_*ful 7 random r

给定一个向量p概率的,什么是生成一个随机的布尔向量的快捷方式x相同的长度,如p与独立的元素,使得x[i]==TRUE以概率p[i]为每一个i

具体来说,有比这些更快的方式吗?:

p <- rep(0.5,10e6)

system.time(runif(length(p)) < p)
   user  system elapsed 
   0.36    0.02    0.37 

system.time(rbinom(length(p),1,p)>0)
   user  system elapsed 
   1.14    0.04    1.17 
Run Code Online (Sandbox Code Playgroud)

Edw*_*win 9

sample在我的机器上使用该功能更快:

system.time(runif(length(p)) < p)
    user  system elapsed 
    0.315   0.002   0.318 
system.time(sample(c(TRUE,FALSE), 10e6, TRUE))
    user  system elapsed 
    0.2     0.0     0.2 
Run Code Online (Sandbox Code Playgroud)