[R] Alternate to for-loop

Wacek Kusnierczyk Waclaw.Marcin.Kusnierczyk at idi.ntnu.no
Tue Feb 17 12:11:35 CET 2009

Stefan Evert wrote:
>> hmm, would you be saying that r's vectorised performance is overhyped?
>> or is it just that non-vectorised code in r is slow?
> What I meant, I guess, was (apart from a little bit of trolling) that
> I'd had misconceptions about the speed differences between loops and
> vectorised code.  In particular, I had entertained the naive belief
> that vectorised solutions are always highly efficient (I wonder if I'm
> the only one who was naive enough to think this ..), so I was very
> much surprised to find a loop in an interpreted language like Lua to
> be faster than vectorised R code.
> My silly little benchmark translated the Lua code
>     sum = 0
>     for i=1,N do sum = sum + i end
> into vectorised R
>     sum(as.numeric(1:N))

what you're benchmarking here is a lump of vector allocation and the
actual summing.  assuming that you already have generated and stored the
values to be summed, the runtime differs a bit:


system.time({ x = 1:10^8 })
system.time({ y = as.numeric(x) })

though again, it's a factor below one order of magnitude.


More information about the R-help mailing list