On Thu, 2007-06-28 at 18:16 -0500, Bingshan Li wrote: > Hello everyone, > > I have a variable with several categories and I want to convert this > into dummy variables and do logistic regression on it. I used > model.matrix to create dummy variables but it always picked the > smallest one as the reference. For example, > > model.matrix(~.,data=as.data.frame(letters[1:5])) > > will code 'a' as '0 0 0 0'. But I want to code another category as > reference, say 'b'. How to do it in R using model.matrix? Is there > other way to do it if model.matrix has no such functionality? > > Thanks!
See ?relevel Note that this (creating dummy variables) will be done automatically in R's modeling functions, which default to treatment contrasts on factors. model.matrix() is used internally by model functions such as glm(). For example using a single factor: FL <- factor(letters[1:5]) > FL [1] a b c d e Levels: a b c d e > contrasts(FL) b c d e a 0 0 0 0 b 1 0 0 0 c 0 1 0 0 d 0 0 1 0 e 0 0 0 1 FL.b <- relevel(FL, "b") > FL.b [1] a b c d e Levels: b a c d e > contrasts(FL.b) a c d e b 0 0 0 0 a 1 0 0 0 c 0 1 0 0 d 0 0 1 0 e 0 0 0 1 See ?contrasts and the Statistical Models section in "An Introduction to R". HTH, Marc Schwartz ______________________________________________ [email protected] mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.
