Over the past several years the Rcpp package has become an indispensable tool for creating high-performance R code. Its power and ease of use have made C++ a natural second language for many R users. There are over 400 packages on CRAN and Bioconductor that depend on Rcpp and it is now the most downloaded R package.
In RStudio v0.99 we have added extensive additional tools to make working with Rcpp more pleasant, productive, and robust, these include:
Source diagnostics as you edit
Navigable list of compilation errors
Code navigation (go to definition)
We think these features will go a long way to helping even more R users succeed with Rcpp. You can try the new features out now by downloading the RStudio Preview Release.
RStudio v0.99 includes comprehensive code completion for C++ based on Clang (the same underlying engine used by XCode and many other C/C++ tools):
Completions are provided for the C++ language, Rcpp, and any other libraries you have imported.
As you edit C++ source files RStudio uses Clang to scan your code looking for errors, incomplete code, or other conditions worthy of warnings or informational notes. For example:
Diagnostics alert you to the possibility of subtle problems and flag outright incorrect code as early as possible, substantially reducing iteration/debugging time.
Rcpp includes some nifty tools to help make working with C++ code just as simple and straightforward as working with R code. You can “source” C++ code into R just like you’d source an R script (no need to deal with Makefiles or build systems). Here’s a Gibbs Sampler implemented with Rcpp:
We can make this function available to R by simply sourcing the C++ file (much like we’d source an R script):
sourceCpp("gibbs.cpp") gibbs(100, 10)
Thanks to the abstractions provided by Rcpp, the code implementing the Gibbs Sampler in C++ is nearly identical to the code you’d write in R, but runs 20 times faster. RStudio includes full support for Rcpp’s
sourceCpp via the Source button and Ctrl+Shift+Enter keyboard shortcut.
If you are new to C++ or Rcpp you might be surprised at how easy it is to get started. There are lots of great resources available, including:
Rcpp website: http://www.rcpp.org/
Rcpp book: http://www.rcpp.org/book/
Tutorial for users new to C++: http://adv-r.had.co.nz/Rcpp.html
Gallery of examples: http://gallery.rcpp.org/
Welcome to the rstudio::glimpse() newsletter. Get a glimpse into our tools and how to use them.
We’d like to highlight and answer some of the great audience questions asked during the "MLOps with vetiver in Python and R" webinar.