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

在R语言中基于概率向量抽取0/1:10个样本的抽样需求

在R中按指定概率生成0/1数值序列

你可以通过以下两种方法生成符合要求的0/1数值:

方法一:使用rbinom函数(高效推荐)

rbinom支持向量形式的概率参数,适合批量生成伯努利随机数:

# 定义每个数值取0的概率向量
p0 <- c(0.1989185, 0.2879522, 0.1142932, 0.3057067, 0.2056559, 
        0.1492126, 0.2775737, 0.3332775, 0.9276861, 0.4373286)

# 设置随机种子(可选,保证结果可复现)
set.seed(123)

# 生成结果:prob参数传入取1的概率(1 - 取0的概率)
result <- rbinom(n = length(p0), size = 1, prob = 1 - p0)
print(result)

运行后会输出10个0或1的数值,每个数值取0的概率对应p0中的元素。

方法二:使用sample函数(直观易懂)

如果需要更直白地指定0和1的抽取概率,可以用sapply循环处理每个概率:

p0 <- c(0.1989185, 0.2879522, 0.1142932, 0.3057067, 0.2056559, 
        0.1492126, 0.2775737, 0.3332775, 0.9276861, 0.4373286)

set.seed(123)
result <- sapply(p0, function(p) sample(c(0, 1), 1, prob = c(p, 1-p)))
print(result)

这里sample函数每次从c(0,1)中抽取1个元素,概率分别为p(取0)和1-p(取1)。

说明

  • set.seed()用于固定随机数生成的初始状态,不需要固定结果的话可以删除该行。
  • 生成大量随机数时,rbinom的效率远高于循环调用sample,优先推荐前者。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 02:24:12