expandiendo las interacciones de los factores dentro de una fórmula

Tengo muchas fórmulas (de claseformula oFormula) de la formay ~ a*b, dóndea yb son factores

Necesito escribir una función que tome tal fórmula y devuelva una fórmula con todos los términos de la interacción "enunciados". Aquí hay un ejemplo:

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

dóndeBigFormula devolucionesformula(x ~ a + b + c + d + a:c + a:d + b:c + b:d).

¿Hay una manera simple de hacer esto?

(El contexto: estoy ejecutando muchos comandos de la formaanova(mod1, mod2), dóndemod2 anida enmod1, y donde el lado derecho de ambos modelos contiene términos comofac1*fac2. El punto de estos comandos es calcular F-estadísticas. El problema es eseanova tratafac1*fac2 como tres variables, aunque por lo general representa más de tres variables. (En el código anterior, por ejemplo,fac1*fac2 representa ocho variables.) Como resultado,anova subestima el número de restricciones en el modelo anidado, y sobreestima mis grados de libertad.)

Respuestas a la pregunta(5)

Su respuesta a la pregunta