2011-12-07 16 views
5

में एक से अधिक स्पष्ट चर कम्बाइन मैं 3 स्पष्ट चरएक डमी चर

agegroup{<20,20-30,>03}  
disease.level{0,1,2}, 
performance{<60, >=60} 

है और मैं उन्हें 3x3x2 के स्तर के साथ एक डमी चर में गठबंधन करने के लिए करना चाहते हैं। क्या ऐसा करने का कोई तेज़ तरीका है? मेरे मूल डेटासेट में प्रत्येक में कई स्तरों के साथ लगभग 10 चर होते हैं।

मूल रूप से मैं इस सवाल का ठीक विपरीत के लिए पूछ रहा हूँ Create new dummy variable columns from categorical variable

धन्यवाद एक बहुत चुनाव आयोग

+5

'interaction' 'model.matrix' के बाद? –

+0

क्या आप एक उदाहरण प्रदान कर सकते हैं? – aatrujillob

+0

शायद @ बेनबोल्कर को इसे उत्तर के रूप में पोस्ट करना चाहिए ...? – joran

उत्तर

5

मैं यकीन नहीं है कि "डमी चर" द्वारा आप 0/1 सूचक चर चाहते नहीं कर रहा हूँ (में जिसमें आपके पास 18 डमी चर होंगे) या आप 18 स्तरों के साथ एक कारक चाहते हैं। उत्तरार्द्ध की तरह लगता है। (वास्तव में, pasteinteraction के रूप में भी काम करेगा, हालांकि 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) करेंगे।

+2

'पेस्ट' से संबंधित, 'इंटरैक्शन' भी अच्छा हो सकता है कि यह दो कारकों के सभी संभावित संयोजनों के लिए स्तर पैदा करता है, यहां तक ​​कि जो वर्तमान डेटा में दिखाई नहीं देते हैं। –

संबंधित मुद्दे