purrrによるプログラミング入門

purrr で学ぶ中級関数型プログラミング

Colin Fay

Data Scientist & R Hacker at ThinkR

$whoami

コーヒーを飲む講師 Colin Fay

purrr で学ぶ中級関数型プログラミング

purrrを学ぶ

purrr で学ぶ中級関数型プログラミング

このコースで学ぶ内容

mapの基本構造

出典: Charlotte Wickham — A introduction to purrr

purrr で学ぶ中級関数型プログラミング

フランス、サン=マロのオープンデータポータルサイト

purrr で学ぶ中級関数型プログラミング

purrrの基礎 - 復習(パート1)

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

  • .xの各要素に対して
  • .f(.x, ...)を実行
  • リストを返す
res <- map(visit_2015, sum) 
class(res)
"list"

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

  • .xの各要素に対して
  • .f(.x, ...)を実行
  • 数値ベクトルを返す
res <- map_dbl(visit_2015, sum) 
class(res)
"numeric"
purrr で学ぶ中級関数型プログラミング

purrrの基礎 - 復習(パート2)

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

  • .xと.yの各要素に対して
  • .f(.x, .y, ...)を実行
  • リストを返す
res <- map2(visit_2015,
            visit_2016,
            sum)
class(res)
"list"

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

  • .xと.yの各要素に対して
  • .f(.x, .y, ...)を実行
  • 数値ベクトルを返す
res <- map2_dbl(visit_2015,
                visit_2016,
                sum)
class(res)
"numeric"
purrr で学ぶ中級関数型プログラミング

purrrの基礎 - 復習(パート3)

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

  • .lの各サブリストに対して
  • f(..1, ..2, ..3, [etc], ...)を実行
  • リストを返す
l <- list(visit_2014,
          visit_2015,
          visit_2016)
res  <- pmap(l, sum)
class(res)
"list"

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

  • .lの各サブリストに対して
  • f(..1, ..2, ..3, [etc], ...)を実行
  • 数値ベクトルを返す
l <- list(visit_2014,
          visit_2015,
          visit_2016)
res <- pmap_dbl(l, sum)
class(res)
"numeric"
purrr で学ぶ中級関数型プログラミング

練習しましょう!

purrr で学ぶ中級関数型プログラミング

Preparing Video For Download...