This four-day course is designed for existing R users who want to extend their knowledge of the language beyond the use of existing CRAN packages. Perhaps with the aim of increasing the depth of your understanding into how different functions work, or in order to progress into developing your own algorithms and packaged software.

This course introduces engineering and software development concepts with practical programming exercises and covers essential topics such as the range of built-in data structures and data types, controlling the flow of a program with selection and iteration, creating your own methods and data structures, creating programs following development best practices, and assessing and improving the performance of your code.

You will also have the opportunity to tackle a consolidation project in which time series data is analysed with differing decision signals to simulate the past effect that a decision making strategy would have had – these skills and knowledge are transferable to many other simulated situations in a multitude of sectors.

For those wishing to certify as Data Scientists this course is aligned with many certifications and professional frameworks in order to support you on your learning journey. In particular for experienced Data Science or Data Analysts, Machine Learning Engineers, Software Developers, and those with similar responsibilities.

It is expected that you will have experience with R and R Studio (or another IDE) previously or experience with another programming language for Software Development. We offer many R courses and would suggest QADHR Data Handling with R as a starting point for anyone not already comfortable with the base R language and Tidyverse.

Target Audience

This course is for individuals who have experience with Python or R in the context of a Data Science or related field.

  • Data Scientists
  • Software Developers
  • Advanced Data Analysts
  • ML / AI Data Engineers

Read more +


Delegates must be existing R users who have attended:

Read more +

Learning Outcomes

  • Increase your knowledge of the core R language, data types, and collections in R
  • Use RStudio to create R Scripts and identify the range of other software solution types
  • Understand why R is considered an easy language for Data Analysts and plan to create packages with a range of R Users in mind
  • Control the flow of your R code with selection and iteration structures and functions
  • Create your own subroutines and class structures using R
  • Learn about different programming paradigms
  • Develop data engineering and software development solutions using base R
  • Lift the hood on community packages, developer tools, and code submission guidelines
  • Practice with simple and intermediate difficulty exercises and an extension project to test a simple financial strategy with time series objects

Read more +

Course Outline

Introduction to R for Programmers

  • Investigate the R programming language and typical usage
  • Explore R Studio including accessibility, the purpose of each window, and types of R files including R Scripts, Quarto, Markdown, and Shiny
  • Create an R Script and use base R and package functionality to write to the console, save R Objects in the environment, install and load packages, and plot static and animated data visualisations.

Atomic Datatypes and Fundamental Operations

  • Store single elements as each of the six base R datatypes: logical, integer, numeric, complex, character, raw.
  • Identify the differences between NULL, NA, NaN, and Inf.
  • Convert datatypes and use arithmetic and relational operators.

Heterogeneous Datatype Containers and Addressing

  • Identify containers that can contain a mixture of datatypes
  • Create and address from a List using a variety of operations
  • Create and address from a Data Frame using a variety of operations

Homogeneous Datatype Containers, Casting, and Piecewise Operations

  • Identify containers that have a consistent datatype throughout
  • Create vectors, factors, matrices, and arrays and convert to vectors
  • Demonstrate piecewise operations in R and use arithmetic, relational, and logical operators


  • Identify selection structures for use in flow control with R
  • Use Boolean logic to control the flow of a program
  • Select the appropriate structure for solving a problem which requires choices to be automated


  • Identify loop structures that can be used to repeat selected code sections
  • Practice using definite and indefinite repetition structures with break and next to control the flow
  • Select the appropriate iterative structure for problems which require repeated actions to be automated

Creating Subroutines

  • Identify how functions and procedures are defined in R and the need for checking trustworthiness of code sources
  • Explore the variety of ways functions can be called including tag abbreviations and base R pipes
  • Create functions including with the use of variadic

Programming Paradigms

  • Create R code that solves a problem using Imperative then Object Oriented Programming (OOP) paradigms.
  • Identify the features of a class, and differences between S3, S4, R5, and R6 objects in R
  • Identify key terminology for OOP programming including object, class, instantiation, encapsulation, inheritance, and polymorphism – and view R examples demonstrating each.
  • Create a solution to a problem using both imperative and object oriented (R5) paradigms.

Development Practices

  • Identify community standards such as naming conventions, commenting, code structure, formatting and style, function documentation, and unit testing.
  • Identify error handling methods in R including custom error handling
  • Identify packages to enable testing in R
  • Create an exemplar function by following development best practices

Performance Enhancement

  • Identify how to measure the time taken and memory used by an R program
  • Compare the effect of vectorisation on performance and assess the use of ifelse(), and the apply family of functions

Developer Tools and Packaging

  • Save and load RData and environments
  • Identify the functionality of devtools
  • Deconstruct and critique a selection of functions from published packages
  • Examine the submission guidelines for CRAN

Practice Project – Strategy Testing

  • Additional Practice if time allows
  • Create a solution in R to compare financial trading strategies using imperative, object oriented, or object oriented with inheritance.

Related learning

Data Science Learning Pathways can be selected by choosing either Python or R and a Cloud Platform certification:

  • QAIDSDP Introduction to Data Science for Data Professionals
  • Sourcing and handling data:
    • QADHPYTHON Data Handling with Python
    • QADHR Data Handling with R
    • QAPDHAI Python Data Handling with AI APIs
  • Statistics for Data Analysis:
    • QASDAPY Statistics for Data Analysis with Python
    • QASDAR Statistics for Data Analysis with R
  • Programming and Software Development skills:
    • QAPYTH3 Python Programming
    • QARPROG R Programming
  • Machine Learning Development:
    • QADSMLP Data Science and Machine Learning with Python
    • QADSMLR Data Science and Machine Learning with R
  • Forecasting:
    • QATSFP Time Series and Forecasting with Python
    • QATSFR Time Series and Forecasting with R

Suggested Certifications:

  • MDP100 Designing and Implementing a Data Science Solution on Azure (DP-100)
  • AMWSMLP Machine Learning Pipelines on AWS
  • GCPMLGC Machine Learning on Google Cloud

Read more +

Why choose QA

Dates & Locations

Need to know

Frequently asked questions

How can I create an account on myQA.com?

There are a number of ways to create an account. If you are a self-funder, simply select the "Create account" option on the login page.

If you have been booked onto a course by your company, you will receive a confirmation email. From this email, select "Sign into myQA" and you will be taken to the "Create account" page. Complete all of the details and select "Create account".

If you have the booking number you can also go here and select the "I have a booking number" option. Enter the booking reference and your surname. If the details match, you will be taken to the "Create account" page from where you can enter your details and confirm your account.

Find more answers to frequently asked questions in our FAQs: Bookings & Cancellations page.

How do QA’s virtual classroom courses work?

Our virtual classroom courses allow you to access award-winning classroom training, without leaving your home or office. Our learning professionals are specially trained on how to interact with remote attendees and our remote labs ensure all participants can take part in hands-on exercises wherever they are.

We use the WebEx video conferencing platform by Cisco. Before you book, check that you meet the WebEx system requirements and run a test meeting (more details in the link below) to ensure the software is compatible with your firewall settings. If it doesn’t work, try adjusting your settings or contact your IT department about permitting the website.

How do QA’s online courses work?

QA online courses, also commonly known as distance learning courses or elearning courses, take the form of interactive software designed for individual learning, but you will also have access to full support from our subject-matter experts for the duration of your course. When you book a QA online learning course you will receive immediate access to it through our e-learning platform and you can start to learn straight away, from any compatible device. Access to the online learning platform is valid for one year from the booking date.

All courses are built around case studies and presented in an engaging format, which includes storytelling elements, video, audio and humour. Every case study is supported by sample documents and a collection of Knowledge Nuggets that provide more in-depth detail on the wider processes.

When will I receive my joining instructions?

Joining instructions for QA courses are sent two weeks prior to the course start date, or immediately if the booking is confirmed within this timeframe. For course bookings made via QA but delivered by a third-party supplier, joining instructions are sent to attendees prior to the training course, but timescales vary depending on each supplier’s terms. Read more FAQs.

When will I receive my certificate?

Certificates of Achievement are issued at the end the course, either as a hard copy or via email. Read more here.

Let's talk

By submitting this form, you agree to QA processing your data in accordance with our Privacy Policy and Terms & Conditions. You can unsubscribe at any time by clicking the link in our emails or contacting us directly.