rozszerzanie interakcji czynników w formule

Mam wiele formuł (klasyformula lubFormula) formularzay ~ a*b, gdziea ib są czynniki.

Muszę napisać funkcję, która przyjmuje taką formułę i zwraca formułę ze wszystkimi wyrażeniami w interakcji „wyrażonymi”. Oto przykład:

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

gdzieBigFormula zwracaformula(x ~ a + b + c + d + a:c + a:d + b:c + b:d).

Czy można to zrobić w prosty sposób?

(Kontekst: Używam wielu poleceń formularzaanova(mod1, mod2), gdziemod2 gniazdujemod1, i gdzie prawa strona obu modeli zawiera terminy takie jakfac1*fac2. Celem tych poleceń jest obliczenie statystyki F. Problemem jestanova Przysmakifac1*fac2 jako trzy zmienne, chociaż zwykle reprezentuje więcej niż trzy zmienne. (W powyższym kodzie, na przykład,fac1*fac2 reprezentuje osiem zmiennych.) W rezultacieanova nie docenia liczby ograniczeń w modelu zagnieżdżonym i przecenia moje stopnie swobody.)

questionAnswers(5)

yourAnswerToTheQuestion