# Speeding up R computations Pt II: compiling

[This article was first published on

Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

A year ago I wrote a post on speeding up R computations. Some of the tips that I mentioned then have since been made redundant by a single package: compiler. Forget about worrying about curly brackets and whether to write 3*3 or 3^2 – compiler solves those problems for you.**Looking at data**, 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.

compiler provides a byte code compiler for R, which offers the possibility of compiling your functions before executing them. Among other things, this speeds up those embarrassingly slow for loops that you’ve been using:

> myFunction<-function() { for(i in 1:10000000) { 1*(1+1) } }

> library(compiler)

> myCompiledFunction <- cmpfun(myFunction) # Compiled function

>

> system.time( myFunction() )

user system elapsed

10.002 0.014 10.021

> system.time( myCompiledFunction() )

user system elapsed

0.692 0.008 0.700

That’s 14 times faster!

Functions written in C (imported using Rcpp) are still much faster than the compiled byte code, but for those of us who

- don’t know C,
- know C but prefer to write code in R,
- know C but don’t want to rewrite functions that we’ve already written in R,

compiler offers a great way of speeding up computations. It’s included in the recommended R packages since R 2.13 (meaning that it comes with your basic R installation) and since R 2.14 most standard functions are already compiled. If you still are running an older version of R it’s definitely time to update.

To

**leave a comment**for the author, please follow the link and comment on their blog:**Looking at data**.R-bloggers.com 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.