与R中的概率混淆

与R中的概率混淆,r,probability,R,Probability,我对R完全陌生,我遇到一个问题,问题的代码是“a=runif(1)

我对R完全陌生,我遇到一个问题,问题的代码是“a=runif(1)<.2”

这是否意味着发生的概率为0.2或0.8?

runif(1)
将从0和1之间的均匀分布中为您提供1个样本:

runif(1)
[1] 0.04113232
然后将其与
0.2
进行比较,并返回一个布尔值,即“我的采样值是否小于0.2?”

runif(1)<.2
[1] 假的

您可以通过运行随机统一函数10000次并在表格中查看结果来查看它的运行情况:

set.seed(2021)
table(runif(1:10000) < 0.2)

20%为真

a为真的概率为0.2为清晰起见,第一个代码块中的数字(
0.0411
)与第二个代码块中生成的数字(我们没有看到)不同。不能推断
0.0411<0.2
将返回
FALSE
。(这是一个技术性问题,但由于OP在整个表达式上不清楚,我认为这可能是有益的。)在每次执行随机函数之前设置种子是解决这一问题的一种方法<代码>设定种子(2021年);runif(1);#0.4512674
set.seed(2021)
table(runif(1:10000) < 0.2)
FALSE  TRUE 
 8044  1956