how do i exclude specific variables from a glm in R?

user3399551 picture user3399551 · Mar 22, 2014 · Viewed 42k times · Source

I have 50 variables. This is how I use them all in my glm.

var = glm(Stuff ~ ., data=mydata, family=binomial)

But I want to exclude 2 of them. So how do I exclude 2 in specific? I was hoping there would be something like this:

var = glm(Stuff ~ . # notthisstuff, data=mydata, family=binomial)

thoughts?

Answer

Greg Snow picture Greg Snow · Mar 22, 2014

In addition to using the - like in the comments

glm(Stuff ~ . - var1 - var2, data= mydata, family=binomial)

you can also subset the data frame passed in

glm(Stuff ~ ., data=mydata[ , !(names(mydata) %in% c('var1','var2'))], family=binomial)

or

glm(Stuff ~ ., data=subset(mydata, select=c( -var1, -var2 ) ), family=binomial )

(be careful with that last one, the subset function sometimes does not work well inside of other functions)

You could also use the paste function to create a string representing the formula with the terms of interest (subsetting to the group of predictors that you want), then use as.formula to convert it to a formula.