Introduction à la programmation avec purrr

Programmation fonctionnelle intermédiaire avec purrr

Colin Fay

Data Scientist & R Hacker at ThinkR

$whoami

Formateur Colin Fay buvant un café

Programmation fonctionnelle intermédiaire avec purrr

Découvrir purrr

Programmation fonctionnelle intermédiaire avec purrr

Que couvre ce cours ?

structure de base de map

Source : Charlotte Wickham — A introduction to purrr

Programmation fonctionnelle intermédiaire avec purrr

Portail de données ouvertes de Saint-Malo, France

Programmation fonctionnelle intermédiaire avec purrr

Bases de purrr – rappel (partie 1)

map(.x, .f, ...)

  • pour chaque élément de .x
  • appliquer .f(.x, ...)
  • renvoyer une liste
res <- map(visit_2015, sum) 
class(res)
"list"

map_dbl(.x, .f, ...)

  • pour chaque élément de .x
  • appliquer .f(.x, ...)
  • renvoyer un vecteur numérique
res <- map_dbl(visit_2015, sum) 
class(res)
"numeric"
Programmation fonctionnelle intermédiaire avec purrr

Bases de purrr – rappel (partie 2)

map2(.x, .y, .f, ...)

  • pour chaque élément de .x et .y
  • appliquer .f(.x, .y, ...)
  • renvoyer une liste
res <- map2(visit_2015,
            visit_2016,
            sum)
class(res)
"list"

map2_dbl(.x, .f, ...)

  • pour chaque élément de .x et .y
  • appliquer .f(.x, .y, ...)
  • renvoyer un vecteur numérique
res <- map2_dbl(visit_2015,
                visit_2016,
                sum)
class(res)
"numeric"
Programmation fonctionnelle intermédiaire avec purrr

Bases de purrr – rappel (partie 3)

pmap(.l, .f, ...)

  • pour chaque sous-liste de .l
  • appliquer f(..1, ..2, ..3, [etc.], ...)
  • renvoyer une liste
l <- list(visit_2014,
          visit_2015,
          visit_2016)
res  <- pmap(l, sum)
class(res)
"list"

pmap_dbl(.l, .f, ...)

  • pour chaque sous-liste de .l
  • appliquer f(..1, ..2, ..3, [etc.], ...)
  • renvoyer un vecteur numérique
l <- list(visit_2014,
          visit_2015,
          visit_2016)
res <- pmap_dbl(l, sum)
class(res)
"numeric"
Programmation fonctionnelle intermédiaire avec purrr

Passons à la pratique !

Programmation fonctionnelle intermédiaire avec purrr

Preparing Video For Download...