Gevorderd functioneel programmeren met purrr
Colin Fay
Data-Scientist & R-Hacker @ ThinkR
Lambda-functies:
map(1:5, ~ .x*10)
[[1]]
[1] 10
[[2]]
[1] 20
[[3]]
[1] 30
[[4]]
[1] 40
[[5]]
[1] 50
Herbruikbare mappers:
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
Functionals:
map() & co.
keep() & discard()
some() & every()
Functie-operatoren:
safely() & possibly()
partial()
compose()
negate()
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
Ga purrr in het echt proberen ;)
DataCamp-cursussen over het tidyverse
Blijf purrr verkennen
Gevorderd functioneel programmeren met purrr