Joshua Great solution. Taking off on your code, the following works but does not display the names of the variables in the formula. Any suggestions about how to modify the function so that it displays the correct formula (e.g., "glm(formula = y1 ~ x1 * x2, data = dat)" instead of "glm(formula = frm, data = dat)")?
R> x = runif(2000) R> y = runif(2000) R> z = runif(2000) R> R> y1 = y * x R> y2 = y * sqrt(x) R> R> x1 = y1 / y2 + z R> x2 = y2 / y1 * z + z R> R> dat = data.frame(y1,y2,x1,x2) R> R> xReg = function(y) { + + frm = eval(substitute(p ~ x1 * x2, list(p = as.name(y)))) + mod = glm(frm, data=dat) + } R> R> lapply(names(dat[,1:2]), xReg) [[1]] Call: glm(formula = frm, data = dat) Coefficients: (Intercept) x1 x2 x1:x2 -0.1882452 0.4932059 0.0667401 -0.1310084 Degrees of Freedom: 1999 Total (i.e. Null); 1996 Residual Null Deviance: 99.15032 Residual Deviance: 67.71775 AIC: -1085.354 [[2]] Call: glm(formula = frm, data = dat) Coefficients: (Intercept) x1 x2 x1:x2 -0.005464627 0.386937367 0.037363416 -0.094136334 Degrees of Freedom: 1999 Total (i.e. Null); 1996 Residual Null Deviance: 112.7078 Residual Deviance: 90.24796 AIC: -510.9287 --- Thanks, Alan ______________________________________________ R-help@r-project.org 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.