Skip to main content

Intermediate Functional Programming with purrr

Continue learning with purrr to create robust, clean, and easy to maintain iterative code.

Start Course for Free
4 Hours17 Videos49 Exercises4,299 Learners3850 XPIntermediate Tidyverse Toolbox Track

Create Your Free Account



By continuing, you accept our Terms of Use, our Privacy Policy and that your data is stored in the USA. You confirm you are at least 16 years old (13 if you are an authorized Classrooms user).

Loved by learners at thousands of companies

Course Description

Have you ever been wondering what the purrr description (“A functional programming toolkit for R”) refers to? Then, you’ve come to the right place! This course will walk you through the functional programming part of purrr - in other words, you will learn how to take full advantage of the flexibility offered by the .f in map(.x, .f) to iterate other lists, vectors and data.frame with a robust, clean, and easy to maintain code. During this course, you will learn how to write your own mappers (or lambda functions), and how to use predicates and adverbs. Finally, this new knowledge will be applied to a use case, so that you’ll be able to see how you can use this newly acquired knowledge on a concrete example of a simple nested list, how to extract, keep or discard elements, how to compose functions to manipulate and parse results from this list, how to integrate purrr workflow inside other functions, how to avoid copy and pasting with purrr functional tools.

  1. 1

    Programming with purrr


    Do lambda functions, mappers, and predicates sound scary to you? Fear no more! After refreshing your purrr memory, we will dive into functional programming 101, discover anonymous functions and predicates, and see how we can use them to clean and explore data.

    Play Chapter Now
    purrr basics - a refresher
    50 xp
    Refreshing your purrr memory
    100 xp
    Another purrr refresher
    100 xp
    Introduction to mappers
    50 xp
    Creating lambda functions
    100 xp
    Lambda functions
    100 xp
    Using mappers to clean up your data
    50 xp
    Clean up your data with keep
    100 xp
    Split up with keep() and discard()
    100 xp
    50 xp
    What is a predicate?
    50 xp
    Exploring data with predicates
    100 xp
  2. 2

    Functional programming: from theory to practice

    Ready to go deeper with functional programming and purrr? In this chapter, we'll discover the concept of functional programming, explore error handling using including safely() and possibly(), and introduce the function compact() for cleaning your code.

    Play Chapter Now
  3. 3

    Better code with purrr

    In this chapter, we'll use purrr to write code that is clearer, cleaner, and easier to maintain. We'll learn how to write clean functions with compose() and negate(). We'll also use partial() to compose functions by "prefilling" arguments from existing functions. Lastly, we'll introduce list-columns, which are a convenient data structure that helps us write clean code using the Tidyverse.

    Play Chapter Now
  4. 4

    Case study

    We'll wrap up everything we know about purrr in a case study. Here, we'll use purrr to analyze data that has been scraped from Twitter. We'll use clean code to organize the data and then we'll identify Twitter influencers from the 2018 RStudio conference.

    Play Chapter Now

In the following tracks

Intermediate Tidyverse Toolbox


chesterChester IsmaybeccarobinsBecca Robins
Colin FAY Headshot

Colin FAY

Data Scientist & R Hacker

Colin is a Data Scientist & R Hacker at ThinkR. He's also a prolific Open Source developer, and an hyper-active Twitter user.

See More

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.

Louis Maiden
Harvard Business School

DataCamp is by far my favorite website to learn from.

Ronald Bowers
Decision Science Analytics, USAA