如何在R中随机生成非常小的数字
how to generate very small numbers randomly in R
我想生成 1e-9
到 1
范围内的非常小的数字。
如果可能的话,这些数字应该来自所有订单。
例如 1e-9、2e-5、3.2e-6、1.6e-4 ....等
我试过了
set.seed(123)
kk <- runif(20,1e-9,1)
#min(kk)
#0.04205953
我该怎么做?
编辑
@RichardScriven 建议减少最大数量,所以尝试
kk <- runif(20,1e-9,1e-5)
kk
#[1] 6.479287e-06 3.198886e-06 3.077892e-06 2.198457e-06 3.695519e-06 #9.842208e-06 1.542869e-06 9.113490e-07 1.419927e-06 6.900381e-06 #6.192946e-06 8.914050e-06 6.730318e-06 7.371040e-06
#[15] 5.211836e-06 6.598725e-06 8.218233e-06 7.863029e-06 9.798239e-06 #4.394876e-06
也许 log
范围,然后 exp
它们回到实际值:
set.seed(13031982)
exp(runif(10, log(1e-9),log(1)))
# [1] 1.758939e-02 1.343684e-06 1.803232e-06 1.564901e-04 5.603956e-07
# [6] 1.042067e-09 6.536568e-08 1.374840e-05 2.210080e-04 6.245864e-03
我想生成 1e-9
到 1
范围内的非常小的数字。
如果可能的话,这些数字应该来自所有订单。
例如 1e-9、2e-5、3.2e-6、1.6e-4 ....等
我试过了
set.seed(123)
kk <- runif(20,1e-9,1)
#min(kk)
#0.04205953
我该怎么做?
编辑 @RichardScriven 建议减少最大数量,所以尝试
kk <- runif(20,1e-9,1e-5)
kk
#[1] 6.479287e-06 3.198886e-06 3.077892e-06 2.198457e-06 3.695519e-06 #9.842208e-06 1.542869e-06 9.113490e-07 1.419927e-06 6.900381e-06 #6.192946e-06 8.914050e-06 6.730318e-06 7.371040e-06
#[15] 5.211836e-06 6.598725e-06 8.218233e-06 7.863029e-06 9.798239e-06 #4.394876e-06
也许 log
范围,然后 exp
它们回到实际值:
set.seed(13031982)
exp(runif(10, log(1e-9),log(1)))
# [1] 1.758939e-02 1.343684e-06 1.803232e-06 1.564901e-04 5.603956e-07
# [6] 1.042067e-09 6.536568e-08 1.374840e-05 2.210080e-04 6.245864e-03