我有一个rda
文件,其中包含逻辑回归模型。如果我只想知道glm
中使用的自变量的数据类型是什么,请将其他事项放在一边如何检查?例如,如果我的Y~ X1+X2+X3
我如何知道X1
,X2
和X3
是哪些数据类型?此时我没有数据框来调查数据类型。任何帮助将受到高度赞赏。
答案 0 :(得分:3)
我想首先提供一些更有用的东西。如何查看$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
返回的内容远远超过lm
,包括data
参数。请注意,lm
不会返回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)
is.data.frame(data)中的错误:object&#39; dat&#39;找不到
这是我在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
来从模型公式和原始数据框构建模型框架。