Ich habe viele Formeln (der Klasse formula
oder Formula
) der Form y ~ a*b
, wo a
und b
Faktoren sind.Erweiterung Faktor Wechselwirkungen innerhalb einer Formel
Ich muss eine Funktion schreiben, die eine solche Formel nimmt und eine Formel mit allen Begriffen in der Interaktion "geschrieben" zurückgibt. Hier ein Beispiel:
fac1 <- factor(c('a', 'a', 'b', 'b'))
fac2 <- factor(c('c', 'd', 'c', 'd'))
BigFormula(formula(x ~ fac1*fac2))
wo BigFormula
kehrt formula(x ~ a + b + c + d + a:c + a:d + b:c + b:d)
.
Gibt es eine einfache Möglichkeit, dies zu tun?
(Der Kontext: Ich habe viele Befehle der Form anova(mod1, mod2)
, wo mod2
Nester in mod1
, und wo die rechte Seite der beiden Modelle enthält Begriffe wie fac1*fac2
leite Der Punkt dieser Befehle ist F-Statistik zu berechnen. Das Problem ist, dass anova
fac1*fac2
als drei Variablen behandelt, obwohl es normalerweise mehr als drei Variablen darstellt. (Im obigen Code stellt beispielsweise fac1*fac2
acht Variablen dar.) Unterschätzt anova
die Anzahl der Einschränkungen im verschachtelten Modell, und es überschätzt meine Freiheitsgrade.)