2

MASS:stepAIC对于具有固定和混合效果的高斯模型,我正在尝试做与该功能类似的事情。这个想法是让它完全推广到许多固定和混合的效果,因为这些任务可以手工完成,对于少数人来说是微不足道的。

我希望能够像 lmer 一样将公式写为输入:

`Y ~ x1 + x2 + (a|b) + (1|c)

我无法从公式类中提取我需要的信息。此外,我需要能够将选定数量的变量放回 lm 和 lmer 函数中。所以我希望能够将公式的部分提取到:

data      fixed effects       mixed effects
Y              x1                 a|b
               x2                 1|c

然后我需要能够自动向 lm 发送任意一组固定和混合效果:

lm(y ~ x1)

4

1 回答 1

1

如果我们可以精确地假设(variable|variable)混合效应项的形式,那么:

library(gsubfn)
fo <- Y ~ x1 + x2 + (a|b) + (1|c)

mixed.vec <- strapplyc(format(fo), "[(] *(\\w+) *[|] *(\\w+) *[)]")[[1]]
mixed <- matrix(mixed.vec, byrow = TRUE, nc = 2)
fixed <- setdiff(all.vars(fo)[-1], mixed)

这给出了以下内容:

> mixed
     [,1] [,2]
[1,] "a"  "b" 
[2,] "1"  "c" 
> fixed
[1] "x1" "x2"

mixed是一个矩阵,其第一列包含 | 之前的变量。第二列包含 | 之后的相应变量 .

于 2012-08-27T17:47:25.903 回答