[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