तो, मेरे डेटा सेट में 15 चर शामिल हैं, उनमें से एक (लिंग) में केवल 2 स्तर हैं। मैं इसे एक डमी चर के रूप में उपयोग करना चाहता हूं, लेकिन स्तर 1 और 2 हैं। मैं यह कैसे कर सकता हूं? मैं स्तर 0 और 1 रखना चाहता हूं, लेकिन मुझे नहीं पता कि आर में इसका प्रबंधन कैसे करें!मैं आर में डमी चर कैसे बना सकता हूं?
उत्तर
आर के मॉडलिंग टूल के साथ फ़ॉर्मूला इंटरफ़ेस के साथ आपको डमी चर बनाने की आवश्यकता नहीं है, अंतर्निहित कोड जो सूत्र को संभालता है और व्याख्या करता है, यह आपके लिए करेगा। यदि आप किसी अन्य कारण के लिए डमी चर चाहते हैं तो कई विकल्प हैं। सबसे आसान (IMHO) उपयोग करने के लिए है model.matrix()
:
set.seed(1)
dat <- data.frame(sex = sample(c("male","female"), 10, replace = TRUE))
model.matrix(~ sex - 1, data = dat)
जो देता है:
> dummy <- model.matrix(~ sex - 1, data = dat)
> dummy
sexfemale sexmale
1 0 1
2 0 1
3 1 0
4 1 0
5 0 1
6 1 0
7 1 0
8 1 0
9 1 0
10 0 1
attr(,"assign")
[1] 1 1
attr(,"contrasts")
attr(,"contrasts")$sex
[1] "contr.treatment"
> dummy[,1]
1 2 3 4 5 6 7 8 9 10
0 0 1 1 0 1 1 1 1 0
आपको अंकीय डमी चर के रूप में dummy
के दोनों स्तंभ का उपयोग कर सकते हैं; आप जिस भी कॉलम को 1
-आधारित स्तर बनना चाहते हैं उसे चुनें। dummy[,1]
मादा वर्ग और dummy[,2]
पुरुष वर्ग का प्रतिनिधित्व करने के रूप में 1
चुनता है। एक कारक के रूप
कास्ट यह आप चाहते हैं अगर यह एक स्पष्ट उद्देश्य के रूप में व्याख्या की जा करने के लिए:
> factor(dummy[, 1])
1 2 3 4 5 6 7 8 9 10
0 0 1 1 0 1 1 1 1 0
Levels: 0 1
लेकिन उस कारक की वस्तु को हराने है; 0
फिर से क्या है?
Ty इस
set.seed(001) # generating some data
sex <- factor(sample(1:2, 10, replace=TRUE)) # this is what you have
[1] 1 1 2 2 1 2 2 2 2 1
Levels: 1 2
sex<-factor(ifelse(as.numeric(sex)==2, 1,0)) # this is what you want
sex
[1] 0 0 1 1 0 1 1 1 1 0
Levels: 0 1
आप लेबल 0 = पुरुष और 1 होना चाहते हैं = महिला, फिर ...
sex<-factor(ifelse(as.numeric(sex)==2, 1,0), labels=c('M', 'F'))
sex # this is what you want
[1] M M F F M F F F F M
Levels: M F
वास्तव में आप में एक डमी चर बनाने के लिए की जरूरत नहीं है एक मॉडल lm
का उपयोग कर अनुमान लगाने के लिए आदेश, चलो इस उदाहरण देखें:
set.seed(001) # Generating some data
N <- 100
x <- rnorm(N, 50, 20)
y <- 20 + 3.5*x + rnorm(N)
sex <- factor(sample(1:2, N, replace=TRUE))
# Estimating the linear model
lm(y ~ x + sex) # using the first category as the baseline (this means sex==1)
Call:
lm(formula = y ~ x + sex)
Coefficients:
(Intercept) x sex2
19.97815 3.49994 -0.02719
# renaming the categories and labelling them
sex<-factor(ifelse(as.numeric(sex)==2, 1,0), labels=c('M', 'F'))
lm(y ~ x + sex) # the same results, baseline is 'Male'
Call:
lm(formula = y ~ x + sex)
Coefficients:
(Intercept) x sexF
19.97815 3.49994 -0.02719
आप आर सौदों देख सकते हैं डमी बहुत अच्छी तरह से, आप उन्हें फॉर्मूला में factor
चर के रूप में पास करते हैं और आर आपके लिए बाकी कर देगा।
जिस तरह से सी (2,1) से सी (0,1) में श्रेणियों को बदलने की आवश्यकता नहीं है, परिणाम वही होंगे जैसा आप ऊपर दिए गए उदाहरण में देख सकते हैं।
जैसा कि उपरोक्त कई लोगों द्वारा सुझाया गया है, इसे कारक में बदल दें।
तुम सच में डमी कोड को लिंग चर चाहते हैं, पर विचार यह
set.seed(100)
gender = rbinom(100,1,0.5)+1
gender_dummy = gender-1
- 1. आर में, कस्टम ब्रेक के साथ, मैं निरंतर चर से बिनड फैक्टर चर कैसे बना सकता हूं?
- 2. क्या मैं आर में खाली ggplot2 प्लॉट बना सकता हूं?
- 3. मैं वैश्विक चर के बिना डेटा कैसे बना सकता हूं?
- 4. मैं पर्ल क्लास कैसे बना सकता हूं?
- 5. मैं ग्रोवी में वैश्विक चर कैसे बना सकता हूं और एक्सेस कर सकता हूं?
- 6. मैं स्ट्रिंग को कैसे बना सकता हूं?
- 7. मैं केकेपीएचपी में सत्र डेटा कैसे बना सकता हूं, लिख सकता हूं और पढ़ सकता हूं?
- 8. एक डमी चर
- 9. मैं आर में न्यूनतम प्रयास के साथ डेटा सेट में सभी चर के लिए हिस्टोग्राम कैसे बना सकता हूं?
- 10. मैं क्यूटी में ऑब्जेक्ट की प्रतिलिपि कैसे बना सकता हूं?
- 11. मैं हैमल में गतिशील आईडी कैसे बना सकता हूं?
- 12. मैं रंगीन टेक्स्ट कैसे बना सकता हूं?
- 13. मैं वर्चुअल गेमपैड कैसे बना सकता हूं?
- 14. मैं थ्रेड पूल कैसे बना सकता हूं?
- 15. मैं वर्टिकल यूआईस्लाइडर कैसे बना सकता हूं?
- 16. मैं मैन्युअल diff कैसे बना सकता हूं?
- 17. मैं ओसीआर कार्यक्रम कैसे बना सकता हूं?
- 18. मैं शेलटोस्ट कैसे बना सकता हूं?
- 19. डमी चर बनाने के लिए कैसे?
- 20. मैं AllocateHwnd थ्रेडसेफ कैसे बना सकता हूं?
- 21. मैं जावा सैंडबॉक्स कैसे बना सकता हूं?
- 22. मैं विस्तारित टेक्स्टबॉक्स कैसे बना सकता हूं?
- 23. मैं एक constraintViolationException कैसे बना सकता हूं?
- 24. मैं सिंगलटन IENumerable कैसे बना सकता हूं?
- 25. मैं बाइनरी पैच कैसे बना सकता हूं?
- 26. मैं कॉन्फ़िगर स्क्रिप्ट कैसे बना सकता हूं?
- 27. जावास्क्रिप्ट: मैं JSONP कैसे बना सकता हूं?
- 28. मैं 404 पेज कैसे बना सकता हूं?
- 29. मैं लॉकलेस कतार कैसे बना सकता हूं?
- 30. मैं SQL में एक प्रतिस्थापन पैटर्न कैसे बना सकता हूं?
इस सवाल का मैं यहाँ से पूछा की तरह लगता है: http://stackoverflow.com/questions/11970611/convert-a-vector-into -लोगिकल-मैट्रिक्स – Chase
यदि आप इसे एक कारक में बदल देते हैं और इसे मॉडल मॉडल में डालते हैं तो आपके लिए गंदे काम का ख्याल रखता है। –
@TylerRinker एलएम और एओवी के लिए यह मामला है, और शायद दूसरों के लिए, लेकिन हमेशा नहीं। मैं डेज़ी का उपयोग कर रहा हूं और यह स्वचालित रूप से ऐसा नहीं करता है: डेज़ी में त्रुटि (ट्रेन.एक्स, मीट्रिक = "गॉवर", टाइप = सूची (symm = 1: symm_bin_len)): कम से कम एक बाइनरी चर 2 स्तर से अधिक है । – JStrahl