[R] Applying user function over a large matrix

Tony Plate tplate at acm.org
Tue Apr 29 23:33:39 CEST 2008


It's quite possible that much of the time spent in loess() is setting up the data (i.e., the formula, terms, model.frame, etc.), and that much of that is repeated identically for each call to loess().  I would suggest looking at the code of loess() and work out what arguments it is calling simpleLoess() with, and then try calling stats:::simpleLoess() directly.  (Of course you have to be careful with this because this is not using the published API).

-- Tony Plate

Sudipta Sarkar wrote:
> Respected R experts,
> I am trying to apply a user function that basically calls and
> applies the R loess function from stat package over each time
> series. I have a large matrix of size 21 X 9000000 and I need
> to apply the loess for each column and hence I have
> implemented this separate user function that applies loess
> over each column and I am calling this function foo as follows:
> xc<-apply(t,2,foo) where t is my 21 X 9000000 matrix and
> loess. This is turning out to be a very slow process and I
> need to repeat this step for 25-30 such large matrix chunks.
> Is there any trick I can use to make this work faster?
> Any help will be deeply appreciated.
> Regards
> 
> 
> Sudipta Sarkar PhD
> Senior Analyst/Scientist
> Lanworth Inc. (Formerly Forest One Inc.)
> 300 Park Blvd., Ste 425
> Itasca, IL
> Ph: 630-250-0468
> 
> ______________________________________________
> 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.
>



More information about the R-help mailing list