[EMAIL PROTECTED] wrote: > Folks, > > I have a 3000 x 4 matrix (y), which I need to regress row-by-row against a > 4-vector (x) to create a > matrix lm.y of intercepts and slopes. To illustrate: > > y <- matrix(rnorm(12000), ncol = 4) > x <- c(1/12, 3/12, 6/12, 1) > > system.time(lm.y <- t(apply(y, 1, function(z) lm(z ~ x)$coefficient))) > [1] 44.72 18.00 69.52 NA NA > > Takes more than a minute to do (and I need to do many similar regressions > a day). > > Is there a more efficient way of handling this? > > I'm running R 2.4.1 on Windows XP Service Pack 2 on a Intel Xeon dual-core > 2.66GHz with 3GB RAM. > > Thanks very much, > > Murali
y <- matrix(rnorm(12000), ncol = 4) x <- c(1/12, 3/12, 6/12, 1) system.time(lm.y1 <- t(coef(lm(t(y) ~ x)))) user system elapsed 0.03 0.00 0.04 system.time(lm.y2 <- t(apply(y, 1, function(z) lm(z ~ x)$coefficient))) user system elapsed 19.70 0.05 20.45 all.equal(lm.y1, lm.y2) [1] TRUE > > --------------------------------------------------------------------------- > This message (including any attachments) is confidential and...{{dropped}} > > ______________________________________________ > 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. -- Chuck Cleland, Ph.D. NDRI, Inc. 71 West 23rd Street, 8th floor New York, NY 10010 tel: (212) 845-4495 (Tu, Th) tel: (732) 512-0171 (M, W, F) fax: (917) 438-0894 ______________________________________________ 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.