Hello Tim, This function will do it where the covariates are provided as separate arguments. It would be easy to modify this to handle a list too.
function(outcome, ...) { arg.names <- as.character(match.call())[-1] nargs <- length(arg.names) f <- as.formula(paste(arg.names[1], "~", paste(arg.names[2:nargs], collapse="+"))) model <- lm(f) # rest of your code here } Hope that helps you get started. Michael On 12 October 2010 14:35, Tim Elwell-Sutton <tesut...@hku.hk> wrote: > Hello all > I have what seems like a simple question but have not been able to find an > answer on the forum. I'm trying to define a function which involves > regression models and a large number of covariates. > > I would like the function to accept any number of covariates and, ideally, I > would like to be able to enter the covariates in a group (e.g. as a list) > rather than individually. Is there any way of doing this? > > Example: > > #define function involving regression model with several covariates > custom <- function(outcome, exposure, covar1, covar2, covar3){ > model <- lm(outcome ~ exposure + covar1 + covar2 + covar3) > expected <- predict(model) > summary(expected) > } > > library(MASS) > attach(birthwt) > > custom(bwt, lwt, low, age, race) #Works when 3 covariates are specified > > custom(bwt,lwt,low,age) # Does not work with < or > 3 covariates > > varlist <- list(low,age,race) > custom(bwt,lwt, varlist) #Does not work if covariates are included as a list > > > > Thanks very much for your help > > Tim > > -- > Tim Elwell-Sutton > University of Hong Kong > > ______________________________________________ > 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. > ______________________________________________ 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.