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

R语言中1000次重复试验平均值计算问题求助

解决你的R代码累加计算平均值问题

我来帮你排查下问题!你的代码现在只返回单次试验结果,主要是几个小细节没处理对,咱们一步步修正:

你的代码存在的问题

  • 没有初始化累加变量:第一次循环时value还没定义,R不知道怎么累加,得先给它设初始值0。
  • 累加语法错误:value =+ y 不是R的正确写法,应该用 value <- value + y 来逐步累加每次试验的y值。
  • 缺少最终计算与输出:循环结束后没把累加的总和除以1000得到平均值,也没打印结果。
  • 额外的笔误:stimateM看起来是拼写错误,而且这里完全多余,直接计算mhat就好。

修正后的for循环版本

# 初始化累加变量为0,确保第一次循环能正常累加
total_error <- 0

for(i in 1:1000) {
  # 从1-500无放回抽取30个样本
  x <- sample(1:500, 30, replace = FALSE)
  # 计算估计值mhat
  mhat <- 2 * mean(x) - 1
  # 计算当前试验的误差绝对值
  current_error <- abs(mhat - 500)
  # 累加误差
  total_error <- total_error + current_error
}

# 计算并打印1000次试验的平均误差
average_error <- total_error / 1000
print(average_error)

更简洁的R风格写法(推荐)

R里更习惯用向量化函数代替for循环,replicate可以帮你一次性完成重复试验,代码更简洁高效:

# 重复1000次试验,收集所有误差值到向量中
all_errors <- replicate(1000, {
  x <- sample(1:500, 30, replace = FALSE)
  mhat <- 2 * mean(x) - 1
  abs(mhat - 500)
})

# 直接用mean()计算平均值
average_error <- mean(all_errors)
print(average_error)

这两种写法都能得到你想要的1000次试验的平均误差结果,后者更符合R的编程习惯,运行效率也更高哦~

内容的提问来源于stack exchange,提问作者O. Santos

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:51:57