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

如何在R语言中生成1精确23次、2精确24次的随机索引?

如何在R语言中生成精确次数的随机索引?

这个问题我之前也碰到过!用sample的prob参数确实只能保证长期的概率分布,没法单次精确控制元素的出现次数。不过有个非常直观且可靠的办法来实现你的需求:

核心思路

先手动构建一个包含精确次数元素的向量,再对这个向量进行随机打乱,这样既保证了每个元素的出现次数完全符合要求,又实现了随机性。

具体代码实现

# 第一步:创建包含23个1和24个2的向量
fixed_vector <- c(rep(1, 23), rep(2, 24))

# 第二步:随机打乱这个向量的顺序,得到最终的随机索引
random_index <- sample(fixed_vector)

# 可选:验证结果的次数是否符合要求
table(random_index)

代码解释

  • rep(1, 23)会生成23个重复的1,rep(2, 24)生成24个重复的2,用c()合并后就得到了一个顺序固定的向量。
  • sample(fixed_vector)默认采用无放回抽样,会返回原向量所有元素的一个随机排列,完美满足你“每次都精确出现指定次数”的要求。

你可以多次运行这段代码,每次得到的random_index都是随机的,但用table()查看时,1的出现次数一定是23次,2一定是24次。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 06:30:41