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

R语言循环生成样本均值直方图时出现'x' must be numeric错误

解决R语言直方图报错:'x' must be numeric

错误原因

你遇到的'x' must be numeric错误,核心问题是传入hist()的combined_samplesA不是数值向量——大概率是循环中存储样本均值时用了列表而非数值向量,或者初始化对象类型错误。

修正后的代码(循环版)

# 初始化长度为100的数值向量,用于存储每个样本的均值
sample_means <- numeric(100)

# 循环生成100个样本并计算均值
for(i in 1:100){
  # 生成单一样本:n=25,均值10,标准差10
  single_sample <- rnorm(n = 25, mean = 10, sd = 10)
  # 将样本均值存入向量
  sample_means[i] <- mean(single_sample)
}

# 绘制样本均值的直方图
hist(sample_means, las = 1, col = "blue", main = "100个样本量为25的样本均值直方图", xlab = "样本均值")

关键修正点

  • 必须用numeric(100)初始化存储均值的对象,确保它是数值向量类型,hist()函数仅接受数值型输入。
  • 如果之前用list()初始化combined_samplesA,存入的均值会被包裹在列表中,导致hist()无法解析。

更简洁的向量化写法(无需循环)

R中可以用replicate()替代循环,代码更简洁且效率更高:

# 一次性生成100个样本的均值
sample_means <- replicate(100, mean(rnorm(n=25, mean=10, sd=10)))

# 绘制直方图
hist(sample_means, las = 1, col = "blue", main = "100个样本量为25的样本均值直方图", xlab = "样本均值")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 15:27:04