Maria Montez wrote: > Hi! > > I would like to be able to create formulas automatically. For example, I > want to be able to create a function that takes on two values: resp and > x, and then creates the proper formula to regress resp on x. > > My code: > > fit.main <- function(resp,x) { > form <- expression(paste(resp," ~ ",paste(x,sep="",collapse=" + "),sep="")) > z <- lm(eval(form)) > z > } > main <- fit.main("y",c("x1","x2","x3","x4")) > > and I get this error: > Error in terms.default(formula, data = data) : > no terms component > > Any suggestions? > > Thanks, Maria > > ______________________________________________ > R-help@stat.math.ethz.ch 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.
Hi, Maria, Try regr <- paste(x, collapse = "+") form <- as.formula(sprintf("%s ~ %s", resp, regr)) HTH, --sundar ______________________________________________ R-help@stat.math.ethz.ch 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.