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

如何在R中执行leaps包子集选择对象$call中的lm公式?

如何用leaps返回的$call对象执行线性回归

嘿,这问题我之前也踩过坑!你说得没错,k$call只是存储了一个未执行的调用语句(call对象),不是已经拟合好的模型。要让它实际跑起来,得用R里的eval()函数来评估这个call对象。

具体步骤:

  • 直接用eval()包裹k$call就能执行这个线性回归命令,把结果存到变量里:
    lm.1 <- eval(k$call)
    
  • 执行完之后,lm.1就是一个标准的lm对象了,你可以用summary(lm.1)查看回归结果,或者用predict(lm.1)做预测,和直接调用lm()得到的模型完全一样。

为什么要这么做?

leaps包在做子集选择时,重点是筛选最优变量组合,它只会记录下最优模型的公式和数据来源(也就是这个call对象),不会提前帮你拟合完整的线性模型。所以需要我们手动用eval()触发执行。

小验证:

你可以先检查下k$call的类型,确认它是call对象:

class(k$call)
# 会输出 "call"

执行eval()之后,再看class(lm.1),就会变成"lm"啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 07:19:46