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

R语言sample/replicate抽样均值直方图代码报错求解

代码错误排查

你的两段代码核心问题如下:

  • 初始版本逻辑错误:仅完成了1次抽样、算出1个固定均值,后续replicate(100, dun)只是把这一个固定值重复复制100次,没有执行重新抽样的操作,得到的结果完全不是100次独立抽样的均值。
  • for循环版本有三个致命问题:
    1. R语言中for结构本身不返回计算结果,直接把循环整体赋值给d只会得到空值NULL
    2. 循环内部多余写了c <- replicate(100, dun),每次循环都会把当前单次算出的均值重复100次,完全不符合需求,还会覆盖变量
    3. 没有预先分配存储结果的向量,每次算出的抽样均值没有存到指定位置,循环跑完不会保留有效计算结果
  • 额外问题:你用c作为变量名,会覆盖R内置的向量合并函数c(),容易引发后续代码的隐性报错。
可运行修正代码

首先先基于你提供的房价数据构造测试数据集(如果你的环境里已经有完整的rome数据集可以跳过这步):

good_struct <-
  c(
    47,113,165,104.3,62.5,70,127.5,64.5,145,63.5,58.9,65,48,3.5,12.8,17.5,36,41.9,53.5,24.5,24.5,55.5,60,51,46,46,44,54.9,42.5,44,44.9,37.9,33,43.9,49.6,52,37.5,50,35.9,42.9,107,112,44.9,55,102,35.5,62.9,39,110,8,62,85.9,57,110,67.7,89.5,70,74,13,48,24,53.5,34.5,53,87.5,33.5,24,9.6,30,41,30,38.9,20.7,49.9,18.6,39,34,16,18.9,15.2,41.5,53,22,24.9,6.7,32.5,30,59,29.5,26,16.5,39,48.9,33.5,46,54,57.9,37.9,32,31,34,29,32.5,51.9,31,41.8,48,28,35,46.5,51.9,35.4,16,35,35,36.5,35.9,45,40,35,38,37,23,25.5,39.5,21.5,9,67.5,13.4,12.5,28.5,23,33.5,9,11,30.9,31.65,33,33.4,47,40,46,45.5,57,29.9,30,34,51,64.5,57.5,85.5,61,38,56.5,60.4,51.5,54,69,56,27.9,37.5,32.9,22,29.9,39.9,32.6,38.5,21.5,25.9,27.5,22.9,31.5,8.5,5.5,33,57,47,43.5,43.9,68.5,44.25,61,40,44.5,57,35,35.1,64.5,40,42.6,50,58,58,55,43,54,39,45,42,38.9,43.215,26.5,30,29.5
  )
# 构造rome数据集
rome <- data.frame(PRICE = good_struct)

你要求的for循环实现版本

# 预先创建长度为100的数值型向量,存储每次抽样的均值结果
d <- numeric(100)
for(i in 1:100){
  # 无放回抽取100个房屋样本
  run <- rome[sample(1:nrow(rome), 100, replace = FALSE), ]
  # 计算当前批次均值,存入结果向量对应位置
  d[i] <- mean(run$PRICE)
}
# 绘制直方图
hist(d, main = "100次重复抽样的房价均值分布", xlab = "样本房价均值", col = "lightblue")

更简洁的replicate实现版本(无需显式写循环)

d <- replicate(100, {
  run <- rome[sample(1:nrow(rome), 100, replace = FALSE), ]
  mean(run$PRICE)
})
hist(d, main = "100次重复抽样的房价均值分布", xlab = "样本房价均值", col = "lightblue")
补充说明
  • 你提供的good_struct共包含200条房价数据,每次无放回抽取100条符合抽样逻辑;如果你的真实数据集行数小于100,需要将抽样参数改为replace = TRUE(有放回抽样),否则会触发抽样长度报错。
  • 代码运行后你会得到接近正态分布的均值直方图,这是中心极限定理的直观表现。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 04:54:27