Advanced Programming in R - Virtual Classroom

Date: Tuesday 14 December 2027 1.00PM - Friday 17 December 2027 5.00PM
Location: Online
CPD: 12.0 hours
RSS Training
Book now


Share this event

Level: Professional (P)

Please be advised that this course is being delivered in 4 afternoon sessions. The sessions take place on the 8th, 9th, 16th and 17th of December. All sessions will run from 1:00-5:00pm

This course is designed for experienced R users who want to create reusable functions, maintainable codebases, custom object classes and robust analytical tools. Through practical examples, you'll learn how advanced R programming techniques can help you write cleaner, more scalable code that can be shared, extended and maintained by other developers. By taking the course, you will be able to move beyond writing analysis scripts and learn how to build professional-quality software.
 
This online training course will cover R object-oriented programming techniques. It will analyse the foundations of OOP and enable the practical exploration of the different varieties of this within R. Beginning with the popular S3 and S4 OOP frameworks, we’ll finish with the new {R6} package that is used extensively in Shiny applications. The course will then introduce the {rlang} package as a way of parsing variables from a data set into a function. Furthermore, it cover environments and function-evaluation in R, to help you understand how the tools in {rlang} work under the hood. The course is delivered over 4 half-day sessions.


Please note: Bookings will close 4 working days before the course start date or when the course has reached its maximum capacity.

RSS-Quality-Mark-reduced-3.jpg

This course has the Society's Quality Mark which means successful completion of the course can be used as part of your application for professional membership including Data Analyst.
 
Level: Professional (P)

Please be advised that this course is being delivered in 4 afternoon sessions. The sessions take place on the 8th, 9th, 16th and 17th of December.. All sessions will run from 1:00-5:00pm.
 

Learning outcomes
 
By the end of this course, delegates will be able to :
  

  • Transform one-off analysis scripts into reusable functions and tools
  • Build custom R classes and methods to support specialized analytical workflows
  • Design, implement and evaluate S3, S4 and R6 solutions appropriate to different software engineering requirements.
  • Build reusable, extensible R APIs using object-oriented programming principles including encapsulation, inheritance and polymorphism.
  • Create and extend generic functions and custom methods for new object classes.
  • Debug and reason about code execution using knowledge of environments, lexical scoping and lazy evaluation.
  • Design functions with rich results that capture, evaluate and manipulate user-supplied expressions safely and predictably.
  • Implement tidy-evaluation workflows that support programmable data-analysis pipelines.
  • Extend the functionality of functions for new object types
  • Use rlang tools to build functions that accept and evaluate variables, expressions and dynamic column names.
  • Develop maintainable R code that can be extended by other developers and integrated into larger projects.
  • Debug difficult scoping, evaluation and environment related issues with confidence
  • Implement R6 classes using public, private and active members and evaluate implications of reference semantics.
  • Compare alternative object-oriented approaches and justify design decisions for real-world projects.
  
Course Outline
 
This course will cover the following topics:
 
  • Advanced Functions: Scoping rules (including lexical scope), The … argument, Argument matching
  • Function components, parameters versus arguments, closures, environments and function exécution mechanics
  • Lazy evaluation and argument evaluation timing.
  • Data masking and distinction between data variables and environment variables.
  • Defused expressions, expr(), enexpr(), eval(), eval_tidy().
  • Quosures and environment capture.
  • S3 classes: Introduction to object-oriented programming, Constructing S3 objects, generic functions, method dispatch and creation of new generics
  • Creating and using S4 classes, validity checking, slots, initialisation methods and multiple inheritance
  • R6 classes: Differences between {R6} and S3/S4, Mutable states, Creating methods, Shallow and deep copies, private fields, active bindings, reference semantics and cloning
  • Modifying user argument in functions calls
  • Quoting code with quosures
  • Using quasi quotation

 
Target Audience
 
This course assumes that participants are comfortable with the fundamentals of R programming. It would be suitable for statisticians, data scientists, quantitative researchers, developers, package authors, Shiny developers and analysts who are moving from exploratory analysis towards production-quality code.

Delegate Feedback

 ““Extremely good teacher, great explanations, funny examples and very flexible in terms of content and time. I got to know a lot of things, that I did not think were possible.”
 
“Material well presented and delivered”
 
”I am not scared of R anymore. It was actually fun!”

“Really great course! Useful content that will greatly benefit me in my future R projects.”

 
Jumping Rivers Tutor
 

Fees

   

Registration before 
14 September 2027

 

Registration on/after
14 September 2027

                                  


Non Member 

RSS Fellow 

RSS CStat/Gradstat/Data Analyst 
also MIS & FIS

 

£835.00 +VAT 

£710.00 +VAT

£665.00 +VAT

£875.00 +VAT

£745.00 +VAT

£695.00 +VAT

Group discounts are also available*:


3-5 people

6-8 people

9+ people
*Discount only applies to non-member price

 


10% discount

15% discount

20% discount

 
 
Book now