The talented Dirk Eddelbuettel has just announced that his new book is coming out this year. I would recommend this book for anyone trying to use R for analytics, Big Data or customized use cases especially if they have a need to speed up the computation times. Rcpp can speed up R by a huge magnitude, and thats because C++ comes closer to the metal.
If you are a business analyst who knows a bit of R, but always were intimidated by C++ programming, well this is the right how to do book for you.
Here is a partial extract-
- Illustrates a range of statistical computations in R using Rcpp package
- Provides a general introduction to extending R with C++ code
- Features an appendix for C++ users new to the R programming environment
- Rcpp packages are presented in the context of useful applications with real-world data
Seamless R and C ++ Integration with Rcpp provides the first comprehensive introduction to Rcpp. Rcpp has become the most widely-used language extension for R, and is deployed by over one-hundred different CRAN and BioConductor packages. Rcpp permits users to pass scalars, vectors, matrices, list or entire R objects back and forth between R and C++ with ease. This brings the depth of the R analysis framework together with the power, speed, and efficiency of C++.
Preface.- Introduction.- A Gentle Introduction to Rcpp.- Tools and Setup.- Core Data Types.- Data Structures: Part One.- Data Structures: Part Two.- Advanced Topics.- Using Rcpp in your package.- Extending Rcpp.- Modules.- Sugar.- Applications.- RInside.- RcppArmadillo.- RcppGSL.- RcppEigen Appendix.- C++ for R programmers.- Indices.- References.
Dirk Eddelbuettel has been a contributor to CRAN for over a decade and maintains around twenty packages. He is the Debian/Ubuntu maintainer for R and other quantitative software, edits the CRAN Task Views for Finance and High-Performance Computing, is a co-founder of the annual R/Finance conference, and an editor of the Journal of Statistical Software. He holds a Ph.D. in Mathematical Economics from EHESS (Paris), and works in Chicago as a Senior Quantitative Analyst.
Interested in using R for analytics and speeding it up with C++. Book your copy here.
If you are in or near New York, you can see these awesome guys in action yourself at a workshop.
Join Dirk Eddelbuettel for six hours of detailed and hands-on instructions and discussions around Rcpp, RInside, RcppArmadillo, RcppGSL and other packages—in an intimate small-group setting.
The full-day format allows combining an introductory morning session with a more advanced afternoon session while leaving room for sufficient breaks. We plan on having about six hours of instructions, a one-hour lunch break and two half-hour coffee breaks (and lunch and refreshments will be provided).
Rcpp has become the most widely-used language extension for R. Currently deployed by 103 CRAN packages and a further 10 BioConductor packages, it permits users and developers to pass “whole R objects” with ease between R and C++, bringing the depth of the R analysis framework together with C++ for anything ranging from higher-performance computations (particularly simulations) to connections to other frameworks and libraries written in C or C++ — a ‘no compromise’ link between R and C++.
Morning session: “A Hands-on Introduction to R and C++”
The morning session will provide a practical introduction to the Rcpp package (and other related packages). The focus will be on simple and straightforward applications of Rcpp in order to extend R and/or to significantly accelerate the execution of simple functions. The tutorial will cover Rcpp attributes as well as the inline package which permits embedding of self-contained C, C++ or FORTRAN code in R scripts. We will also discuss RInside, to easily embed the R engine code in C++ applications, as well as standard Rcpp extension packages such as RcppArmadillo for linear algebra (via highly expressive templated C++ libraries).
Afternoon session: “Advanced R and C++ Topics”
The afternoon tutorial will provide a hands-on introduction to more advanced Rcpp features. It will cover topics such as writing packages that use Rcpp, how Rcpp modules and R ReferenceClasses interact, how Rcpp sugar lets us write C++ code that is often as expressive as R code, and how Rcpp attributes allow for the easiest integration yet of R and C++. Another possible topic, time permitting, may be writing glue code to extend Rcpp to other C++ projects as a concrete study.