Advanced Programming in R - Virtual Classroom

Date: Tuesday 10 December 2024 1.00PM - Friday 13 December 2024 5.00PM
Location: Online
CPD: 12.0 hours
RSS Training


Share this event

Level: Professional (P)

This online training course will cover R object-oriented programming techniques. It will discuss what OOP is and the different varieties 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. This course will be delivered over 4 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)

This online training course will cover R object-oriented programming techniques. It will discuss what OOP is and the different varieties 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. This course will be delivered over 4 sessions.
 

Course Outline

 This course will cover the following topics:
  • Advanced Functions: Scoping rules (including lexical scope), The … argument, Argument matching
  • S3 classes: Introduction to object-oriented programming, Constructing S3 objects, Drawbacks
  • S4 classes: Creating and using S4 classes, Differences between S3 and S4 classes
  • R6 classes: Differences between {R6} and S3/S4, Mutable states, Creating methods, Shallow and deep copies
  • Modifying user argument in functions calls
  • Quoting code with quosures
  • Using quasi quotation
 

Learning outcomes

By the end of this course, delegates will be able to :
  • Select the most appropriate form of OOP for their task
  • Leverage encapsulation, polymorphism and inheritance to provide a nice user interface to their code
  • Write functions with rich results, user-friendly display and programmer-friendly internals
  • Extend the functionality of functions for new object types
  • Write code that is extensible by others
  • Use the {rlang} operators {{}}, !!, !!! and := to pass variables
  • Modify user functions using enquo()
  • Parse and deparse expressions
 

Target Audience

This course assumes that participants are comfortable with the fundamentals of R programming. As such the course will be of interest to anyone who uses R, in particular those who want to develop their computer skills to cover more advanced topics.
 

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.”

 

Dr Keith Newman

Following a PhD in statistics at Newcastle University, Keith developed software to improve road safety modelling. He enjoys creating Shiny apps and teaching the use of R.

 

Fees

   

Registration before 
10 November 2024

 

Registration on/after
 10 November 2024

                                  


Non Member 

RSS Fellow 

RSS CStat/Gradstat/Data Analyst 
also MIS & FIS

 

£694.00+vat 

£590.00vat 

£557.00+vat

£772.00+vat 

£655.00+vat 

£616.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