Loved by learners at thousands of companies
Object-oriented programming (OOP) lets you specify relationships between functions and the objects that they can act on, helping you manage complexity in your code. This is an intermediate level course, providing an introduction to OOP, using the S3 and R6 systems. S3 is a great day-to-day R programming tool that simplifies some of the functions that you write. R6 is especially useful for industry-specific analyses, working with web APIs, and building GUIs.
Introduction to Object-Oriented ProgrammingFree
Learn what object-oriented programming (OOP) consists of, when to use it, and what OOP systems are available in R. You'll also learn how R identifies different types of variable, using classes, types, and modes.
S3 is a very simple object-oriented system that lets you define different behavior for functions, depending upon their input argument. This chapter explains how to use S3, and how generics and methods work.Generics and Methods or Function Overload50 xpWhat's in a Name?50 xpCreating a Generic Function100 xpCreating an S3 Method (1)100 xpCreating an S3 method (2)100 xpMethodical Thinking50 xpFinding Available Methods (1)100 xpFinding Available Methods (2)50 xpMethod Lookup for Primitive Generics50 xpPrimitive Generic Functions100 xpWho is Calling?50 xpToo Much Class50 xpVery Classy100 xpWriting the Next Method100 xp
Learn how to define R6 classes, and to create R6 objects. You'll also learn about the structure of R6 classes, and how to separate the user interface from the implementation details.
Learn how to inherit from an R6 class, and how the relationship between parent and child classes works.Propagating Functionality with Inheritance50 xpSpecifying a Fancy Microwave Oven100 xpWho's the Daddy?50 xpMaking a Fancy Microwave Oven100 xpEmbrace, Extend, Override50 xpExtending the Cooking Capabilities100 xpOverriding the Cooking Capabilities100 xpMultiple Levels of Inheritance50 xpExposing your Parent100 xpOver-Overriding the Cooking Capabilities100 xpRemembering Your Origins50 xp
Advanced R6 Usage
Complete your mastery of R6 by learning about advanced topics such as copying by reference, shared fields, cloning objects, and finalizing objects.Environments, Reference Behavior, & Shared Fields50 xpWorking with Environments (1)100 xpWorking with Environments (2)100 xpStatic Electricity100 xpCloning R6 Objects50 xpAttack of the Clones (1)100 xpAttack of the Clones (2)100 xpShut it Down50 xpThe Final Countdown50 xpThis is the End (of an R6 Object)100 xp
DatasetsCooking times (SQLite file)
PrerequisitesIntroduction to Writing Functions in R
Data Evangelist at DataCamp
Richie is a Data Evangelist at DataCamp. He has been using R since 2004, in the fields of proteomics, debt collection, and chemical health and safety. He has released almost 30 R packages on CRAN and Bioconductor – most famously the assertive suite of packages – as well as creating and contributing to many others. He also has written two books on R programming, Learning R and Testing R Code.
What do other learners have to say?
I've used other sites—Coursera, Udacity, things like that—but DataCamp's been the one that I've stuck with.
Devon Edwards Joseph
Lloyds Banking Group
DataCamp is the top resource I recommend for learning data science.
Harvard Business School
DataCamp is by far my favorite website to learn from.
Decision Science Analytics, USAA