使用R语言predict()函数报错:找不到'running.time'对象的求助
问题:R语言预测时提示"object 'running.time' not found"错误
错误信息
Error in eval(predvars, data, env) : object 'running.time' not found. Calls : .<anonymous> ... predicts.lm -> model.frame -> model.frame.default -> eval -> eval Execution halted
使用的代码
新数据框定义
v4mM_new = data.frame( v4mM = c(14, 15, 16, 17, 18, 19) )
预测代码
predict(v4mM.model, newdata = v4mM_new, interval = "confidence")
原因分析
你训练的模型v4mM.model中包含了running.time作为自变量,但用于预测的新数据框v4mM_new里没有这个变量,R在生成预测所需的模型框架时找不到该变量,因此报错。
解决方法
确认模型结构:运行以下命令查看模型用到的所有自变量,验证
running.time是否在其中:formula(v4mM.model) # 或查看模型摘要 summary(v4mM.model)根据情况修复:
- 如果
running.time是模型必须的自变量:在v4mM_new中添加对应的running.time列,填入合适数值(固定值、对应观测值或预测值均可),示例:
完成后重新运行预测代码。v4mM_new = data.frame( v4mM = c(14, 15, 16, 17, 18, 19), running.time = c(30, 32, 35, 31, 33, 34) # 替换为实际所需数值 ) - 如果
running.time是误加入的无关变量:重新训练不含该变量的模型,比如原模型公式若为y ~ v4mM + running.time,改为y ~ v4mM后重新拟合,再用新模型执行预测。
- 如果
内容的提问来源于stack exchange,提问作者Joseph Linane
相关产品推荐
相关产品推荐

