我正在寻找一个TRUE以给定概率返回的函数。就像是:
> proba = 2/3
> function(proba)
Run Code Online (Sandbox Code Playgroud)
它TRUE以 2/3 的概率返回(或 1),以FALSE1/3 的概率返回(或 0)
我能想到的唯一计算方法是:
> sample(c(rep(1,ceiling(proba*100)),rep(0,ceiling((1-proba)*100))),1)
Run Code Online (Sandbox Code Playgroud)
但它只给出了一个近似值(而且看起来并不好看!),因为它只能处理小数位数有限的值。
proba <- 2/3
# number of values:
n <- 1
as.logical(rbinom(n,size=1,prob=proba))
Run Code Online (Sandbox Code Playgroud)