我有许多(类formula
或Formula
)形式的公式y ~ a*b
,其中a
和b
是因素。
我需要编写一个函数,该函数采用这样的公式并返回一个公式,其中包含交互中的所有术语“拼写出来”。这是一个例子:
fac1 <- factor(c('a', 'a', 'b', 'b'))
fac2 <- factor(c('c', 'd', 'c', 'd'))
BigFormula(formula(x ~ fac1*fac2))
哪里BigFormula
返回formula(x ~ a + b + c + d + a:c + a:d + b:c + b:d)
。
有没有一种简单的方法可以做到这一点?
(上下文:我正在运行许多形式的命令anova(mod1, mod2)
,其中mod2
嵌套在 中mod1
,并且两个模型的右侧都包含类似的术语。这些命令的重点是计算 F 统计量。问题fac1*fac2
在于anova
将fac1*fac2
变量,尽管它通常代表三个以上的变量。(例如,在上面的代码中,fac1*fac2
代表八个变量。结果,anova
低估了嵌套模型中的限制数量,并且高估了我的自由度。)