How to write efficient R code
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