[R] generating an expression for a formula automatically

Sundar Dorai-Raj sundar.dorai-raj at pdf.com
Thu Aug 24 23:50:44 CEST 2006


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 at 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



More information about the R-help mailing list