[R] How to write efficient R code

Rajarshi Guha rxg218 at psu.edu
Tue Feb 17 20:34:04 CET 2004


On Tue, 2004-02-17 at 12:21, Tom Blackwell wrote:
> Lennart  -
> 
> My two rules are:
> 
>   1. Be straightforward.  Don't try to be too fancy.  Don't worry
>   about execution time until you have the WHOLE thing programmed
>   and DOING everything you want it to.  Then profile it, if it's
>   really going to be run more than 1000 times.  Execution time
>   is NOT the issue.  Code maintainability IS.
> 
>  2. Use vector operations wherever possible.  Avoid explicit loops.
>     However, the admonition to avoid loops is probably much less
>     important now than it was with the Splus of 10 or 15 years ago.
> 
> (Not that I succeed in obeying these rules myself, all the time.)
> 
> Remember:  execution time is not the issue.  memory size may be.
> clear, maintainable code definitely is.

I've been using for maybe 6 months or less and am by no means an R
expert. But the above two points are extremely valid - my policy is to
always write code that I can read 2 months later without comments
(though in the end I do add them) - even if it requires loops.

However, after I'm sure the results are right I spend time on trying to
vectorise the code. And that has improved performace by orders of
magnitude (IMO, its also more elegant to have a one line vector
operation rather than a loop).

Of course as I progress towards the status of R expert I hope to be able
to write vectorised code on the fly :)

-------------------------------------------------------------------
Rajarshi Guha <rxg218 at psu.edu> <http://jijo.cjb.net>
GPG Fingerprint: 0CCA 8EE2 2EEB 25E2 AB04 06F7 1BB9 E634 9B87 56EE
-------------------------------------------------------------------
So the Zen master asked the hot-dog vendor, 
"Can you make me one with everything?"
- TauZero on Slashdot




More information about the R-help mailing list