[R] Specifying formula inside a function
Mark Seeto
markseeto at gmail.com
Thu Jun 10 06:18:07 CEST 2010
Hello,
How does one specify a formula to lm inside a function (with variable
names not known in advance) and have the formula appear explicitly in
the output?
For example,
f <- function(d) {
in.model <- sample(c(0,1), ncol(d)-1, replace=T)
current.model <- lm(paste(names(d)[1], "~",
paste(names(d[2:ncol(d)])[which(in.model == 1)], collapse= "+")),
data=d) #***
return(current.model)
}
x1 <- rnorm(50,0,1)
x2 <- rnorm(50,0,1)
x3 <- rnorm(50,0,1)
x4 <- rnorm(50,0,1)
y <- rnorm(50,0,1)
d <- data.frame(y, x1, x2, x3, x4)
f(d)
Call:
lm(formula = paste(names(d)[1], "~",
paste(names(d[2:ncol(d)])[which(in.model == 1)], collapse = "+")),
data = d)
Coefficients:
(Intercept) x3 x4
-0.1087 0.2830 0.1024
How can I specify the formula in the line marked *** so that the
output will show "formula = y ~ x3 + x4" instead of "formula =
paste..."?
Thanks for any help you can give.
Regards,
Mark
--
Mark Seeto
Statistician
National Acoustic Laboratories
A Division of Australian Hearing
More information about the R-help
mailing list