从 lm 模型对象中提取数据帧

Dan*_*kin 4 r lm

简单的问题我一直找不到答案。

我正在寻找一个函数,该函数可以提取用作lm模型对象输入的数据框的名称。

例如,如果我跑

model <- lm(mpg ~ cyl, data = mtcars)

我想要一个像这样的函数

data.name(model)

产生

mtcars

我看过这里这里,但他们似乎没有给我我正在寻找的东西。例如,除非我使用model.frame()错误,否则它只会为我提供包含模型中使用的术语的数据框,而不是原始输入数据框。

Ben*_*ker 7

model$call$data给你mtcars(一个未评估的符号);deparse(model$call$data)给你"mtcars"(一个字符串)。eval(model$call$data)如果原始数据对象在当前环境中可用,则返回给您。