Einführung in das Programmieren mit purrr

Fortgeschrittene funktionale Programmierung mit purrr

Colin Fay

Data Scientist & R Hacker at ThinkR

$whoami

Dozent Colin Fay trinkt Kaffee

Fortgeschrittene funktionale Programmierung mit purrr

purrr entdecken

Fortgeschrittene funktionale Programmierung mit purrr

Was deckt dieser Kurs ab?

map Grundgerüst

Quelle: Charlotte Wickham — A introduction to purrr

Fortgeschrittene funktionale Programmierung mit purrr

Open-Data-Portal der Stadt Saint-Malo, Frankreich

Fortgeschrittene funktionale Programmierung mit purrr

purrr-Grundlagen – Auffrischung (Teil 1)

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

  • für jedes Element von .x
  • führe .f(.x, ...) aus
  • gib eine Liste zurück
res <- map(visit_2015, sum) 
class(res)
"list"

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

  • für jedes Element von .x
  • führe .f(.x, ...) aus
  • gib einen numerischen Vektor zurück
res <- map_dbl(visit_2015, sum) 
class(res)
"numeric"
Fortgeschrittene funktionale Programmierung mit purrr

purrr-Grundlagen – Auffrischung (Teil 2)

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

  • für jedes Element von .x und .y
  • führe .f(.x, .y, ...) aus
  • gib eine Liste zurück
res <- map2(visit_2015,
            visit_2016,
            sum)
class(res)
"list"

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

  • für jedes Element von .x und .y
  • führe .f(.x, .y, ...) aus
  • gib einen numerischen Vektor zurück
res <- map2_dbl(visit_2015,
                visit_2016,
                sum)
class(res)
"numeric"
Fortgeschrittene funktionale Programmierung mit purrr

purrr-Grundlagen – Auffrischung (Teil 3)

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

  • für jede Unterliste von .l
  • führe f(..1, ..2, ..3, [etc], ...) aus
  • gib eine Liste zurück
l <- list(visit_2014,
          visit_2015,
          visit_2016)
res  <- pmap(l, sum)
class(res)
"list"

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

  • für jede Unterliste von .l
  • führe f(..1, ..2, ..3, [etc], ...) aus
  • gib einen numerischen Vektor zurück
l <- list(visit_2014,
          visit_2015,
          visit_2016)
res <- pmap_dbl(l, sum)
class(res)
"numeric"
Fortgeschrittene funktionale Programmierung mit purrr

Lass uns üben!

Fortgeschrittene funktionale Programmierung mit purrr

Preparing Video For Download...