[R] Error in contrasts message when using logistic regression code.

Marc Schwartz marc_schwartz at me.com
Tue Oct 23 21:40:14 CEST 2012

On Oct 23, 2012, at 1:43 PM, hoguejm <hoguejm at gmail.com> wrote:

> I have a rather large data set (about 30 predictor variables)
> I need to preform a logistic regression on this data. My response variable
> is binary.
> My code looks like this:
> mylogit <- glm(Enrolled ~ A + B + C + ... + EE, data = data, family =
> binomial(link="logit"))
> with A,B,C, ... as my predictor variables. Some categorical, some
> continuous, some binary.
> I run the code and get this error:
> Error in `contrasts<-`(`*tmp*`, value = contr.funs[1 + isOF[nn]]) : 
>  contrasts can be applied only to factors with 2 or more levels
> Any ideas on how to fix this? I am fairly new to R so Im guessing there is
> something missing/wrong in my logit code. 
> Thanks!

More than likely, one or more of your categorical variables are not set up as factors, or if they are, then one or more have only a single factor level present in the dataset that is used for the model, thus are constant.

You might want to run:

  # see ?str


  # see ?summary

to get a sense of the structure of your data set (to make sure that you have factors and not character vectors) and to get a sense for the distribution of your IVs.


Marc Schwartz

More information about the R-help mailing list