Edit, even easier, with as.formula
:
valid.names <- names(mydata)[names(mydata) != "group"] # all but group
for(i in 2:length(valid.names)) {
frm <- as.formula(paste("group ~", valid.names[i - 1], "+" , valid.names[i]))
myglm <- glm(formula = frm, family = "binomial", data = mydata) ## works fine
}
Old version
Here is a potential solution using parse
:
valid.names <- names(mydata[, -4]) # all but group
frm <- group ~ x
for(i in 2:length(valid.names)) {
varplusvar <- parse(text=paste(valid.names[i - 1], "+" , valid.names[i]))[[1]]
frm[[3]] <- varplusvar
myglm <- glm(formula = frm, family = "binomial", data = mydata) ## works fine
}