io non sono sicuro se da "variabile dummy" che si desidera 0/1 variabili indicatore (in che avresti 18 variabili dummy) o se vuoi un singolo fattore con 18 livelli. Sembra il secondo. (In realtà, paste
avrebbe funzionato così come interaction
, anche se interaction
è un po 'più di auto-descrizione.)
> ff <- expand.grid(agegroup=factor(c("<20","20-30",">30")),
disease.level=factor(0:2),performance=factor(c("<60",">=60")))
> combfac <- with(ff,interaction(agegroup,disease.level,performance))
> combfac
[1] <20.0.<60 20-30.0.<60 >30.0.<60 <20.1.<60 20-30.1.<60
[6] >30.1.<60 <20.2.<60 20-30.2.<60 >30.2.<60 <20.0.>=60
[11] 20-30.0.>=60 >30.0.>=60 <20.1.>=60 20-30.1.>=60 >30.1.>=60
[16] <20.2.>=60 20-30.2.>=60 >30.2.>=60
18 Levels: <20.0.<60 20-30.0.<60 >30.0.<60 <20.1.<60 20-30.1.<60 ... >30.2.>=60
Se si desidera utilizzare tutti le variabili nella cornice di dati per creare l'interazione è possibile utilizzare do.call(interaction,ff)
.
Se si desidera che le variabili dummy si farebbe model.matrix(~combfac-1)
per ottenerle.
fonte
2011-12-07 19:07:37
'interazione' seguita da' model.matrix'? –
potresti fornire un esempio? – aatrujillob
Forse @BenBolker dovrebbe pubblicarlo come risposta ...? – joran