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

如何在R语言中从[-2,-1]和[1,2]双区间均匀分布随机抽样?

R中双区间均匀随机抽样的实现方案

核心思路

先为每个随机样本随机分配所属区间([-2,-1]或[1,2],分配概率各50%),再在对应区间生成均匀分布数值。这种方式既保证整体上两个区间的样本数量大致相等,又允许单次抽样中两个区间的样本数出现随机波动。

代码实现

假设需要抽取n个样本,示例代码如下:

# 定义总样本量
total_samples <- 100

# 随机为每个样本选择所属区间:0对应[-2,-1],1对应[1,2]
interval_assign <- sample(c(0, 1), size = total_samples, replace = TRUE, prob = c(0.5, 0.5))

# 根据区间分配生成对应样本
result_samples <- ifelse(
  interval_assign == 0,
  runif(total_samples, min = -2, max = -1),
  runif(total_samples, min = 1, max = 2)
)

代码说明

  • sample()函数以均等概率为每个样本分配区间,长期来看两个区间的样本占比接近1:1,但单次抽样的样本数会有自然波动;
  • ifelse()结合runif()生成对应区间的均匀随机数,彻底避开[-1,1]的无抽样区间。

抽样结果验证

可以用直方图直观验证抽样分布是否符合要求:

hist(
  result_samples,
  breaks = seq(-2, 2, 0.1),
  main = "双区间均匀抽样结果",
  xlab = "样本数值",
  col = "lightblue"
)

生成的直方图会在[-2,-1]和[1,2]区间呈现均匀分布,中间[-1,1]区间无样本点。

内容的提问来源于stack exchange,提问作者J. Doe

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 14:55:27