Funktionell programmering på mellannivå med purrr
Colin Fay
Data-Scientist & R-Hacker @ ThinkR
Lambdafunktioner:
map(1:5, ~ .x*10)
[[1]]
[1] 10
[[2]]
[1] 20
[[3]]
[1] 30
[[4]]
[1] 40
[[5]]
[1] 50
Återanvändbara 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
Funktionaler:
map() och liknande
keep() och discard()
some() och every()
Funktionsoperatorer:
safely() och 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
Testa purrr i verkligheten ;)
DataCamp tidyverse-kurser
Fortsätt utforska purrr
Funktionell programmering på mellannivå med purrr