[拟合lme4
模型后,我想知道如何从terms(fit)[[3]]
中获得预测变量的类?
这是一个简单的示例,但我赞赏lme4
中任何其他模型的功能性回答。
注:必须从模型中提取所有内容。
library(lme4)
h <- read.csv('https://raw.githubusercontent.com/hkil/m/master/h.csv')
h$year <- as.factor(h$year)
m <- lmer(scale~ year*group + (1|stid), data = h)
terms(m)[[3]] ## What are the `class`es of the variables in here (e.g., `integer`, `factor` etc.)
也许不够完美,但是:
av <- all.vars(terms(m)[[3]]) ## c("year","group")
data=
提供的数据框中查找它们:setNames(lapply(av, function(x) class(h[[x]])), av)
$year
[1] "factor"
$group
[1] "character"
如果要从模型中获取所有内容,通常会得到MUCH HARDER,因为原始变量不一定要存储。在示例中,您进行了此工作:
setNames(lapply(av, function(x) class(model.frame(m)[[x]])), av)
$year
[1] "factor"
$group
[1] "factor"
您会注意到group
已转换为因子。您可以例如通过在模型中使用类似log(x)
的术语来打破这一点...