我不知道你是否通過「虛擬變量」希望0/1指標變量(以你將有18個虛擬變量),還是你想要一個具有18個等級的因子。聽起來像後者。如果你想使用所有變量的數據幀創建可以使用的交互(實際上,paste
將工作以及interaction
,雖然interaction
是一個比較自我描述。)
> 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
do.call(interaction,ff)
。
如果你確實想要的虛擬變量,你會做model.matrix(~combfac-1)
得到它們。
'interaction'隨後'model.matrix'? –
你能提供一個例子嗎? – aatrujillob
也許@BenBolker應該張貼,作爲一個答案......? – joran