Scott Fortmann-Roe
2011-Jun-18 06:08 UTC
[R] Applying function to all elements of a formula
Hi, I would like to do a regression like: reg <- lm(y~log(.), data) where the log function is applied to "." in the form: log(x1)+ log(x2)+ log(x3)... instead of in the form log(x1+x2+x3+...) Is this possible? Thank you, Scott [[alternative HTML version deleted]]
Yes, it's possible, but if you want to do prediction on future x-values, you will likely have a problem. One way to do it would be something like (assuming y is the first column of dat) reg <- lm(y ~ log(as.matrix(dat[, -1])), dat) but the output would be pretty ugly (see summary(reg)). Another would be to construct the matrix outside the data frame and do something like X <- log(as.matrix(dat[, -1])) reg <- lm(dat$y ~ X) There may be better ways, though... Dennis On Fri, Jun 17, 2011 at 11:08 PM, Scott Fortmann-Roe <scottfr at gmail.com> wrote:> Hi, > > I would like to do a regression like: > > ? ? ? ? reg <- lm(y~log(.), data) > > where the log function is applied to "." in the form: > > ? ? ? ?log(x1)+ log(x2)+ log(x3)... > > instead of in the form > > ? ? ? log(x1+x2+x3+...) > > > Is this possible? > > Thank you, > Scott > > ? ? ? ?[[alternative HTML version deleted]] > > ______________________________________________ > R-help at 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. >