在R语言中创建含x%值为1、其余为0的指定长度列
在R中生成指定比例0-1向量的简便方法
如果只是需要近似x%的元素为1(随机抽样,大样本下比例趋近于设定值),最简便的两种方法:
用
rbinom()函数(二项分布抽样):
这是最简洁的写法,直接指定样本量、单次试验成功次数(设为1)和成功概率(x%转成小数)。示例:# 生成长度为100的向量,30%为1 vec <- rbinom(n = 100, size = 1, prob = 0.3)用
sample()函数:
指定要抽样的元素c(0,1),通过prob参数设置各自的比例,开启放回抽样。示例:# 生成长度为100的向量,30%为1,70%为0 vec <- sample(c(0,1), size = 100, replace = TRUE, prob = c(0.7, 0.3))
如果需要严格精确的x%比例(比如n=100时必须恰好30个1),可以先构造包含指定数量1和0的向量,再打乱顺序:
n <- 100 x <- 30 # 构造向量并随机打乱 vec <- sample(c(rep(1, x), rep(0, n - x)))
注:如果n*x不是整数,可根据需求用floor()或ceiling()调整1的数量,比如floor(n*x/100)。
内容的提问来源于stack exchange,提问作者gados2000
相关产品推荐
相关产品推荐

