Chúc mừng!

Lập trình hàm nâng cao với purrr

Colin Fay

Data-Scientist & R-Hacker @ ThinkR

Hàm lambda:

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

[[2]]
[1] 20

[[3]]
[1] 30

[[4]]
[1] 40

[[5]]
[1] 50

Mapper tái sử dụng:

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
Lập trình hàm nâng cao với purrr

Biến đổi hàm

Functionals:

  • map() & họ hàng

  • keep() & discard()

  • some() & every()

Toán tử hàm:

  • safely() & possibly()

  • partial()

  • compose()

  • negate()

Lập trình hàm nâng cao với purrr

Mã gọn hơn

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
Lập trình hàm nâng cao với purrr

Tiếp theo làm gì?

  • Hãy thử purrr ngoài thực tế ;)

  • Các khóa học tidyverse trên DataCamp

  • Advanced R

  • Tiếp tục khám phá purrr

Lập trình hàm nâng cao với purrr

Hẹn gặp lại!

Lập trình hàm nâng cao với purrr

Preparing Video For Download...