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

如何在R中获取仅包含统计模型所用原始变量的最小数据框

提取模型所用原始变量的数据集副本

要获取仅包含模型构建时用到的原始变量的数据集副本,核心思路是从模型的公式中解析出所有原始变量名称,再从原数据框中筛选这些变量。这种方法完全通用,不管变量经过多少次非可逆变换都适用。

具体实现步骤

  1. 从模型对象中提取公式
  2. 用all.vars()解析公式,得到所有原始变量名(该函数会自动忽略变换函数,只识别底层的原始变量)
  3. 从原数据集中选择这些变量

代码示例

# 先构建示例模型
fit <- lm(Sepal.Length ~ log(Sepal.Width) + I(Petal.Length^2), data = iris)

# 提取模型用到的所有原始变量名
model_raw_vars <- all.vars(formula(fit))

# 生成仅包含原始变量的数据集副本
mini_iris <- iris[, model_raw_vars, drop = FALSE]

# 查看结果
head(mini_iris)

说明

  • all.vars()是关键:它会递归解析公式里的所有表达式,哪怕变量被嵌套在log()、I()、sqrt()等变换函数中,都能准确提取出原始变量名。比如上面的例子里,会提取出Sepal.Length、Sepal.Width、Petal.Length这三个原始变量。
  • drop = FALSE是为了确保即使最终只筛选出一个变量,结果依然是数据框格式,避免变成向量。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 03:41:27