Expandierende Faktorwechselwirkungen innerhalb einer Formel

Ich habe viele Formeln (von Klasseformula oderFormula) des Formularsy ~ a*b, wohera undb sind Faktoren.

Ich muss eine Funktion schreiben, die eine solche Formel annimmt und eine Formel mit allen Begriffen in der Interaktion "buchstabiert" zurückgibt. Hier ist ein Beispiel:

fac1 <- factor(c('a', 'a', 'b', 'b'))
fac2 <- factor(c('c', 'd', 'c', 'd'))
BigFormula(formula(x ~ fac1*fac2))

woherBigFormula kehrt zurückformula(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 führe viele Befehle des Formulars ausanova(mod1, mod2), wohermod2 Nester inmod1, und wo die rechte Seite beider Modelle Begriffe wie enthältfac1*fac2. Der Sinn dieser Befehle ist die Berechnung von F-Statistiken. Das Problem ist, dassanova Leckereienfac1*fac2 als drei Variablen, obwohl es normalerweise mehr als drei Variablen darstellt. (Im obigen Code zum Beispielfac1*fac2 stellt acht Variablen dar.) Als Ergebnisanova unterschätzt die Anzahl der Einschränkungen im verschachtelten Modell und überschätzt meine Freiheitsgrade.)

Antworten auf die Frage(5)

Ihre Antwort auf die Frage