[R] Odp: optimizing speed of calculation (recursive product)

Petr PIKAL petr.pikal at precheza.cz
Wed Sep 3 17:32:55 CEST 2008


Hi

r-help-bounces at r-project.org napsal dne 03.09.2008 16:39:07:

> Dear list,
> I'm wondering how to optimize functions/processes like the one shown 
> below (which simplifies something we're trying to do with very large 
> datasets).
> In many cases I've noticed that using apply, sapply etc can help 
> speeding up processes, but in this case I don't see how I could do so.
> 
> a <- runif(10000000,0.5,1.6)
> C <- 2
> M <- 10000000
> system.time( for (i in 1:(M-1)) {C <- C* c(a[i],a[i+1])} )

Maybe simple math? You want last two members of 2*cumprod(a).

So

> system.time(2*cumprod(a)[9999999:10000000])
   user  system elapsed 
   1.97    0.04    2.00 
>

shall be a little bit quicker then for cycle. But it is valid only for the 
above calculation.

Regards
Petr



> 
> 
> By the way, I'm using R-2.7.2 on Win XP and/or Fedora Linux.
> 
> Thank's in advance for any hints,
> Wolfgang Raffelsberger
> 
> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
> Wolfgang Raffelsberger, PhD
> Laboratoire de BioInformatique et Génomique Intégratives
> CNRS UMR7104, IGBMC 
> 1 rue Laurent Fries,  67404 Illkirch  Strasbourg,  France
> 
> ______________________________________________
> 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