我使用sample()
来绘制1000个从1到120的整数。我预计大约77%的人会低于65岁的门槛。(即,77%在1-65之间均匀采样,其余23%从66-120均匀采样)。
我可以通过指定1到120的每个概率来以一种笨拙的方式做到这一点:
set.seed(123)
n <- 1000
mmax <- 120
thresh <- 65
probthresh <- 0.77
x <- sample(1:mmax, n,
prob = c(rep(probthresh/thresh, thresh),
rep((1 - probthresh)/(mmax - thresh), (mmax - thresh))),
replace = TRUE)
table(x <= thresh)
# FALSE TRUE
# 226 774
正如您所看到的,prob
语句非常不优雅,在更复杂的应用程序中可能无法安全地扩展。
我怎样才能根据这些约束在这个上下文中更恰当地画出整数呢?我不一定需要使用sample()
。
2条答案
按热度按时间kulphzqa1#
类似@MrFlick:
mnemlml82#
你可以有条件地在两个样本中选择一个。