r语言 - 从 lme4 模型中获取预测变量的类



拟合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.)

也许不是完全健壮,但是:

  1. 从术语对象中提取变量的名称
av <- all.vars(terms(m)[[3]])   ## c("year","group")
  1. data=提供的数据框中查找它们:
setNames(lapply(av, function(x) class(h[[x]])), av)
$year
[1] "factor"
$group
[1] "character"

如果你想从模型中获取所有内容,这通常会变得更加困难,因为原始变量不一定被存储。 在你给出的例子中,这有效:

setNames(lapply(av, function(x) class(model.frame(m)[[x]])), av)
$year
[1] "factor"
$group
[1] "factor"

您会注意到group已转换为因子。 您可以打破这一点,例如,通过在模型中使用像log(x)这样的术语......

相关内容

  • 没有找到相关文章

最新更新