Parabéns!

Programação Funcional Intermediária com purrr

Colin Fay

Data-Scientist & R-Hacker @ ThinkR

Funções lambda:

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

[[2]]
[1] 20

[[3]]
[1] 30

[[4]]
[1] 40

[[5]]
[1] 50

Mapeadores reutilizáveis:

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
Programação Funcional Intermediária com purrr

Manipulação de funções

Funcionais:

  • map() e a família

  • keep() e discard()

  • some() e every()

Operadores de função:

  • safely() e possibly()

  • partial()

  • compose()

  • negate()

Programação Funcional Intermediária com purrr

Código mais limpo

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
Programação Funcional Intermediária com purrr

Para onde ir agora?

  • Teste purrr no mundo real ;)

  • Cursos do tidyverse na DataCamp

  • Advanced R

  • Continue explorando purrr

Programação Funcional Intermediária com purrr

Até breve!

Programação Funcional Intermediária com purrr

Preparing Video For Download...