ho molte formule (di classe o di formula
Formula
) del modulo y ~ a*b
, dove a
e b
sono fattori.espansione interazioni tra fattori all'interno di una formula
Ho bisogno di scrivere una funzione che accetta una formula del genere e restituisce una formula con tutti i termini dell'interazione "enunciati". Ecco un esempio:
fac1 <- factor(c('a', 'a', 'b', 'b'))
fac2 <- factor(c('c', 'd', 'c', 'd'))
BigFormula(formula(x ~ fac1*fac2))
dove BigFormula
rendimenti formula(x ~ a + b + c + d + a:c + a:d + b:c + b:d)
.
C'è un modo semplice per farlo?
(Il contesto: io sono in esecuzione molti comandi del modulo anova(mod1, mod2)
, dove mod2
nidi mod1
, e dove il lato destro di entrambi i modelli contiene termini come fac1*fac2
Il punto di questi comandi è quello di calcolare F-statistiche. Il problema è che anova
considera fac1*fac2
come tre variabili, anche se di solito rappresenta più di tre variabili. (Nel codice sopra, ad esempio, fac1*fac2
rappresenta otto variabili). Di conseguenza, anova
sottovaluta il numero di restrizioni nell'annesso modello, e sovrastima i miei gradi di libertà.)