You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用R的rbinom生成取值为1和2的二项分布随机数

解决方法

以下几种直接的方式可以满足你的需求:

  • 方法一:条件判断转换
    直接对rbinom()的输出做替换,用ifelse把0换成2,1保留为1:

    # 生成10个符合要求的随机数
    result <- ifelse(rbinom(n=10, size=1, prob=0.75) == 0, 2, 1)
    
  • 方法二:数学运算转换(更简洁)
    利用简单的算术转换,因为你需要0→2、1→1,直接用2 - rbinom()即可:

    result <- 2 - rbinom(n=10, size=1, prob=0.75)
    

    原理很简单:当rbinom输出0时,2-0=2;输出1时,2-1=1,完全匹配你的需求,不需要额外的替换操作。

  • 方法三:正确使用sample.int()
    你之前用sample.int遇到困难,其实只要对应好概率就能直接生成目标结果。因为你要1的概率是0.75,2的概率是0.25(对应原二项分布中1和0的概率),所以可以这样写:

    result <- sample.int(n=2, size=10, replace=TRUE, prob=c(0.75, 0.25))
    

    这里n=2表示取1和2两个值,prob参数按顺序对应1和2的出现概率,replace=TRUE表示可重复抽样(模拟二项分布的独立试验)。

内容的提问来源于stack exchange,提问作者Fionn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 20:12:02