找出变量'在不访问原始数据框的情况下回归模型中的类

时间:2016-11-15 20:32:35

标签: r regression glm

我有一个rda文件,其中包含逻辑回归模型。如果我只想知道glm中使用的自变量的数据类型是什么,请将其他事项放在一边如何检查?例如,如果我的Y~ X1+X2+X3我如何知道X1X2X3是哪些数据类型?此时我没有数据框来调查数据类型。任何帮助将受到高度赞赏。

1 个答案:

答案 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这是glmlm 的区别。 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不是NULLmodel.frame只是提取它。但如果它真的是NULLmodel.frame旨在重建它。但要重建它,您需要访问原始数据框。如果原始数据框不可用,则什么也得不到(但是错误)。

要理解这一点,请注意model.frame是(S3)通用函数:

.S3methods("model.frame")
#[1] model.frame.aovlist* model.frame.default  model.frame.glm*    
#[4] model.frame.lm*
来自模型对象的

model.frame.lmmodel.frame.glm简单提取$model(如果存在$model);否则它会调用model.frame.default来从模型公式和原始数据框构建模型框架。