Introduzione alla programmazione con purrr

Programmazione funzionale intermedia con purrr

Colin Fay

Data Scientist & R Hacker at ThinkR

$whoami

Istruttore Colin Fay che beve caffè

Programmazione funzionale intermedia con purrr

Scoprire purrr

Programmazione funzionale intermedia con purrr

Cosa coprirà questo corso?

scheletro base di map

Da: Charlotte Wickham — Introduzione a purrr

Programmazione funzionale intermedia con purrr

Sito Open Data Portal di Saint-Malo, Francia

Programmazione funzionale intermedia con purrr

Basi di purrr - ripasso (Parte 1)

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

  • per ogni elemento di .x
  • esegui .f(.x, ...)
  • restituisce una lista
res <- map(visit_2015, sum) 
class(res)
"list"

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

  • per ogni elemento di .x
  • esegui .f(.x, ...)
  • restituisce un vettore numerico
res <- map_dbl(visit_2015, sum) 
class(res)
"numeric"
Programmazione funzionale intermedia con purrr

Basi di purrr - ripasso (Parte 2)

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

  • per ogni elemento di .x e .y
  • esegui .f(.x, .y, ...)
  • restituisce una lista
res <- map2(visit_2015,
            visit_2016,
            sum)
class(res)
"list"

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

  • per ogni elemento di .x e .y
  • esegui .f(.x, .y, ...)
  • restituisce un vettore numerico
res <- map2_dbl(visit_2015,
                visit_2016,
                sum)
class(res)
"numeric"
Programmazione funzionale intermedia con purrr

Basi di purrr - ripasso (Parte 3)

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

  • per ogni sottolista di .l
  • esegui f(..1, ..2, ..3, [ecc.], ...)
  • restituisce una lista
l <- list(visit_2014,
          visit_2015,
          visit_2016)
res  <- pmap(l, sum)
class(res)
"list"

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

  • per ogni sottolista di .l
  • esegui f(..1, ..2, ..3, [ecc.], ...)
  • restituisce un vettore numerico
l <- list(visit_2014,
          visit_2015,
          visit_2016)
res <- pmap_dbl(l, sum)
class(res)
"numeric"
Programmazione funzionale intermedia con purrr

Esercitiamoci!

Programmazione funzionale intermedia con purrr

Preparing Video For Download...