Congratulations!

Intermediate Functional Programming with purrr

Colin Fay

Data-Scientist & R-Hacker @ ThinkR

Lambda functions:

map(1:5, ~ .x*10)
[[1]]
[1] 10

[[2]]
[1] 20

[[3]]
[1] 30

[[4]]
[1] 40

[[5]]
[1] 50

Reusable mappers:

ten_times <- as_mapper(~ .x * 10)
map(1:5, ten_times)
[[1]]
[1] 10

[[2]]
[1] 20

[[3]]
[1] 30

[[4]]
[1] 40

[[5]]
[1] 50
Intermediate Functional Programming with purrr

Function manipulation

Functionals:

  • map() & friends

  • keep() & discard()

  • some() & every()

Function operators:

  • safely() & possibly()

  • partial()

  • compose()

  • negate()

Intermediate Functional Programming with purrr

Cleaner code

library(purrr)
rounded_mean <- compose(
  partial(round, digits = 1),
  partial(mean, trim = 2, na.rm = TRUE))
map(list(airquality, mtcars), 
  ~ map_dbl(.x, rounded_mean))
[[1]]
Ozone Solar.R    Wind    Temp   Month     Day 
 31.5   205.0     9.7    79.0     7.0    16.0 

[[2]]
 mpg   cyl  disp    hp  drat    wt  qsec    vs    am  gear  carb 
19.2   6.0 196.3 123.0   3.7   3.3  17.7   0.0   0.0   4.0   2.0
Intermediate Functional Programming with purrr

Where to go next?

  • Go and try purrr in the wild ;)

  • DataCamp tidyverse courses

  • Advanced R

  • Continue to explore purrr

Intermediate Functional Programming with purrr

See you soon!

Intermediate Functional Programming with purrr

Preparing Video For Download...