How to speed up loops in R

[This article was first published on Revolutions, and kindly contributed to R-bloggers]. (You can report issue about the content on this page here)
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

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:


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 their blog: Revolutions. offers daily e-mail updates about R news and tutorials about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

Never miss an update!
Subscribe to R-bloggers to receive
e-mails with the latest R posts.
(You will not see this message again.)

Click here to close (This popup will not appear again)