Tôi không chắc liệu bằng cách "biến dummy" bạn muốn 0/1 biến chỉ số (trong mà bạn sẽ có 18 biến giả) hoặc cho dù bạn muốn có một yếu tố duy nhất với 18 cấp độ. Âm thanh như sau. (Trên thực tế, paste
sẽ làm việc cũng như interaction
, mặc dù interaction
là thêm một chút tự mô tả.)
> 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
Nếu bạn muốn sử dụng tất cả các biến trong khung dữ liệu để tạo sự tương tác bạn có thể sử dụng do.call(interaction,ff)
.
Nếu bạn muốn các biến giả bạn sẽ làm model.matrix(~combfac-1)
để tải chúng.
Nguồn
2011-12-07 19:07:37
'tương tác' theo sau là' model.matrix'? –
bạn có thể cung cấp một ví dụ không? – aatrujillob
Có lẽ @BenBolker nên đăng câu trả lời đó ...? – joran