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

R语言使用predict函数遇‘object not found’错误的解决求助

解决R语言predict函数"object not found"错误的方案

问题根源

  • newdata变量名不匹配:你的线性回归模型使用的自变量是rts、size、cpm、pr,但你创建的carvals数据框用了Type和weight作为列名,完全不符合predict函数的要求——它需要newdata包含与模型自变量完全同名的列。
  • 变量大小写不一致:你将sales$size转成因子后存入了sales$Size(大写S),但回归公式里仍用size(小写s),导致模型实际调用的是原始未转换的size列,而非你处理后的因子列。

修正后的代码

sales <- read.csv("CarValues.csv")
# 统一变量名大小写,将size列转为因子
sales$size <- as.factor(sales$size)
summary(sales)

# 构建与数据列名匹配的回归模型
sales.regr <- lm(vs ~ rts + size + cpm + pr, data=sales)

# 创建符合要求的newdata:列名必须与模型自变量完全一致
carvals <- data.frame(
  rts = 75,
  size = "Upscale Sedan",
  cpm = 0.72,
  pr = 3
)

# 执行预测
predict(sales.regr, newdata = carvals, type="response")

关键说明

predict函数的newdata参数必须严格对应模型中的自变量名称,这样函数才能找到用于预测的变量值。同时要保证数据预处理和模型公式中的变量名一致,避免因大小写或名称差异导致的错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 06:05:06