[R] Row-by-row regression on matrix

Charles C. Berry cberry at tajo.ucsd.edu
Wed Sep 19 19:32:49 CEST 2007



> system.time( lm( t(y) ~ x ) )
    user  system elapsed
   0.008   0.000   0.010



On Wed, 19 Sep 2007, 
murali.menon at uk.abnamro.com 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
>
>
> ---------------------------------------------------------------------------
> This message (including any attachments) is confidential and...{{dropped}}
>
> ______________________________________________
> 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.
>

Charles C. Berry                            (858) 534-2098
                                             Dept of Family/Preventive Medicine
E mailto:cberry at tajo.ucsd.edu	            UC San Diego
http://famprevmed.ucsd.edu/faculty/cberry/  La Jolla, San Diego 92093-0901



More information about the R-help mailing list