[R] optimizing speed of calculation (recursive product)
Uwe Ligges
ligges at statistik.tu-dortmund.de
Wed Sep 3 17:11:05 CEST 2008
Wolfgang Raffelsberger wrote:
> 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])} )
Well, in principal you could say:
a <- runif(10000000,0.5,1.6)
C <- 2
M <- 10000000
system.time(C <- C * c(prod(a[-M]), prod(a[-1])))
but this is all completely inaccurate from a numerical point of view -
and you probably end up with c(0, 0) which is the quickest way to
calculate those numbers in similar accurate way.
Uwe Ligges
>
> 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