Advanced Programming in R – On-Site Training


R is a flexible and power language for statistical computing and data analysis. There are a number of unique paradigms and features of R that enable a programmer to take the next step to master the language, and produce powerful scripts.

If purchased, our team of Masters and PhDs will arrange for a half-day to day-long workshop to train your team or organization in advanced R programming. We will present the material from our Advanced Programming course live, with interactive demos, and exercises. Please contact us at for more information on this offering.


  • Knowledge of R Programming
  • R 3.4.x
  • RStudio 1.0.x


Part One: R Paradigms

1. Vectorization – The basics of vectorized operations in R. Here we will introduce apply statements, and the parallel versions of them for optimizing code. The focus of this part of the course is on speed.
2. Functional Programming – Creating functions and modularizing code is an important step in becoming an advanced R programmer. This modularization allows generalized pieces of code to be used and re-used.
3. Operators – Operators allow more complex operations to be reduced to an easy-to-use operator, increasing the syntactic quality of the code.

Part Two: Package Development

1. Intro to Package Development – Once we have established R paradigms, we are ready to learn how to package our code and distribute it as an R package for other programmers.
2. Roxygen2 – Package documentation is made seamless yet powerful with Roxygen2.
3. GitHub Interfacing – When our package is ready, its time to deploy. This portion of the course will focus on distributing packages, as well as modifying and updating packages, using GitHub.

Part Three: Rcpp

1. Interfacing with C Code – Sometimes we need to use a lower level language to really speed up computations. Here we will learn how to interface with C or C++ in R.
2. Standard Template Library (STL) – The Standard Template Library exposes a number of standard C++ functionality to R, greatly increasing our capabilities.
3. Packages with Rcpp – Integration of C++ into R packages is an important step in the development process, and we will learn how to do that in this portion.

Part Four: Special Topics

1. S3 vs S4 ($ vs @) – Differences between the S3 and S4 object system
2. System Calls – How to call system functions from within R
3. Text Manipulation (grep) – Working with text data in R
4. rvest / selenium – Web scraping in R made easy
5. Shiny – Web development in R made easy
6. RMarkdown – Documentation creation in R made easy


Eric Hare Eric Hare

Contact Us for Pricing
Back to Top