Introducere în programare cu purrr

Programare funcțională intermediară cu purrr

Colin Fay

Data Scientist & R Hacker at ThinkR

$whoami

Instructorul Colin Fay bând cafea

Programare funcțională intermediară cu purrr

Descoperind purrr

Programare funcțională intermediară cu purrr

Ce acoperă acest curs?

Schița de bază a funcției map

Sursa: Charlotte Wickham — A introduction to purrr

Programare funcțională intermediară cu purrr

Site-ul Portalului de Date Deschise din Saint-Malo, Franța

Programare funcțională intermediară cu purrr

Noțiuni de bază purrr - recapitulare (Partea 1)

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

  • pentru fiecare element din .x
  • aplică .f(.x, ...)
  • returnează o listă
res <- map(visit_2015, sum) 
class(res)
"list"

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

  • pentru fiecare element din .x
  • aplică .f(.x, ...)
  • returnează un vector numeric
res <- map_dbl(visit_2015, sum) 
class(res)
"numeric"
Programare funcțională intermediară cu purrr

Noțiuni de bază purrr - recapitulare (Partea 2)

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

  • pentru fiecare element din .x și .y
  • aplică .f(.x, .y, ...)
  • returnează o listă
res <- map2(visit_2015,
            visit_2016,
            sum)
class(res)
"list"

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

  • pentru fiecare element din .x și .y
  • aplică .f(.x, .y, ...)
  • returnează un vector numeric
res <- map2_dbl(visit_2015,
                visit_2016,
                sum)
class(res)
"numeric"
Programare funcțională intermediară cu purrr

Noțiuni de bază purrr - recapitulare (Partea 3)

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

  • pentru fiecare sublista din .l
  • aplică f(..1, ..2, ..3, [etc], ...)
  • returnează o listă
l <- list(visit_2014,
          visit_2015,
          visit_2016)
res  <- pmap(l, sum)
class(res)
"list"

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

  • pentru fiecare sublistă din .l
  • aplică f(..1, ..2, ..3, [etc], ...)
  • returnează un vector numeric
l <- list(visit_2014,
          visit_2015,
          visit_2016)
res <- pmap_dbl(l, sum)
class(res)
"numeric"
Programare funcțională intermediară cu purrr

Să exersăm!

Programare funcțională intermediară cu purrr

Preparing Video For Download...