How to speed up loops in R

November 28, 2011
By

(This article was first published on Revolutions, and kindly contributed to R-bloggers)

As with any language, there are often several ways to code up the solution to a programming problem in R. If performance of the code is important (i.e. it's something you plan to run many times, or with a lot of data), how you code the solution can often have a big impact on how fast it runs. For example, the RLangTip Twitter feed offered this tip last month:

RLangTip

The Me Nugget blog has practical example of this principle in action: in some simple tests, dynamically resizing a matrix (extending it with the rbind function) was more than 150x slower than assigning into an matrix with the dimensions pre-set. (The reason for this is that every time the matrix is extended, an entirely new block of memory must be assigned for the new, larger matrix and the data copied over. So don't do that.) Interestingly, the example shows that extending a list doesn't incur the same penalties -- in R, each element of a list gets its own block of memory. So if you're not sure in advance how many elements you need to store, use a list, and then collect the results at the end with sapply or similar.

Me Nugget: Another aspect of speeding up loops in R

To leave a comment for the author, please follow the link and comment on his blog: Revolutions.

R-bloggers.com offers daily e-mail updates about R news and tutorials on topics such as: visualization (ggplot2, Boxplots, maps, animation), programming (RStudio, Sweave, LaTeX, SQL, Eclipse, git, hadoop, Web Scraping) statistics (regression, PCA, time series, trading) and more...



If you got this far, why not subscribe for updates from the site? Choose your flavor: e-mail, twitter, RSS, or facebook...

Tags: ,

Comments are closed.