在不访问原始数据框的情况下找出回归模型中的变量 class
Figuring out variables' class in a regression model without accessing the original data frame
我有一个 rda
文件,其中包含逻辑回归模型。如果我只想知道 glm
中使用的自变量的数据类型是什么,请将其他事情放在一边,我该如何检查它们?例如,如果我的 Y~ X1+X2+X3
我怎么知道 X1
、X2
和 X3
是什么数据类型?此时我没有数据框来调查数据类型。任何帮助将不胜感激。
我想先提供一些更有用的东西。检查 $terms
怎么样? (以下以fit
为例)
## or `attr(terms(fit), "dataClasses")`
attr(fit$terms, "dataClasses")
# mpg qsec factor(am) wt factor(gear)
# "numeric" "numeric" "factor" "numeric" "factor"
既然你的问题只提到识别数据类,这就足够了。但是,如果您想访问变量的数据,请选中 $data
。 这就是 glm
与 lm
的不同之处。 glm
return 比 lm
多了很多东西,包括 data
参数。注意,lm
不是 return data
.
更多关于model.frame
几乎总是,model.frame
是最好的程序。但请谨慎使用。
dat <- mtcars
fit <- glm(mpg ~ qsec + factor(am) + wt + factor(gear),
data = dat, model = FALSE)
rm(dat)
model.frame(fit)
Error in is.data.frame(data) : object 'dat' not found
这是我在 OP 问题下的评论中解释的:如果 $model
不是 NULL
,model.frame
只是将其提取。但如果真的是NULL
,model.frame
旨在重建它。但是要重建它,您需要访问原始数据框。如果原始数据框不可用,您什么也得不到(但会出错)。
要理解这一点,请注意 model.frame
是一个 (S3) 通用函数:
.S3methods("model.frame")
#[1] model.frame.aovlist* model.frame.default model.frame.glm*
#[4] model.frame.lm*
model.frame.lm
和 model.frame.glm
从模型对象中简单提取 $model
(如果存在 $model
);否则它调用 model.frame.default
从模型公式和原始数据框架构建模型框架。
我有一个 rda
文件,其中包含逻辑回归模型。如果我只想知道 glm
中使用的自变量的数据类型是什么,请将其他事情放在一边,我该如何检查它们?例如,如果我的 Y~ X1+X2+X3
我怎么知道 X1
、X2
和 X3
是什么数据类型?此时我没有数据框来调查数据类型。任何帮助将不胜感激。
我想先提供一些更有用的东西。检查 $terms
怎么样? (以下以fit
为例)
## or `attr(terms(fit), "dataClasses")`
attr(fit$terms, "dataClasses")
# mpg qsec factor(am) wt factor(gear)
# "numeric" "numeric" "factor" "numeric" "factor"
既然你的问题只提到识别数据类,这就足够了。但是,如果您想访问变量的数据,请选中 $data
。 这就是 glm
与 lm
的不同之处。 glm
return 比 lm
多了很多东西,包括 data
参数。注意,lm
不是 return data
.
更多关于model.frame
几乎总是,model.frame
是最好的程序。但请谨慎使用。
dat <- mtcars
fit <- glm(mpg ~ qsec + factor(am) + wt + factor(gear),
data = dat, model = FALSE)
rm(dat)
model.frame(fit)
Error in is.data.frame(data) : object 'dat' not found
这是我在 OP 问题下的评论中解释的:如果 $model
不是 NULL
,model.frame
只是将其提取。但如果真的是NULL
,model.frame
旨在重建它。但是要重建它,您需要访问原始数据框。如果原始数据框不可用,您什么也得不到(但会出错)。
要理解这一点,请注意 model.frame
是一个 (S3) 通用函数:
.S3methods("model.frame")
#[1] model.frame.aovlist* model.frame.default model.frame.glm*
#[4] model.frame.lm*
model.frame.lm
和 model.frame.glm
从模型对象中简单提取 $model
(如果存在 $model
);否则它调用 model.frame.default
从模型公式和原始数据框架构建模型框架。