データセットからの情報抽出

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

Colin Fay

Data Scientist & R Hacker @ ThinkR

関数の操作

これまで学んだ内容:

  • partial()

  • compose()

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

partial()

partial() で関数に引数を事前設定できます:

sum_no_na <- partial(sum, na.rm = TRUE)

map_dbl(airquality, sum_no_na)
  Ozone Solar.R    Wind    Temp   Month     Day 
 4887.0 27146.0  1523.5 11916.0  1070.0  2418.0
purrr で学ぶ中級関数型プログラミング

compose()

compose() で関数を合成できます:

rounded_sum <- compose(round, sum_no_na)

map_dbl(airquality, rounded_sum)
  Ozone Solar.R    Wind    Temp   Month     Day 
   4887   27146    1524   11916    1070    2418
purrr で学ぶ中級関数型プログラミング

リストの整理

NULL の削除:

  • compact()

1 階層の削除:

  • flatten()
purrr で学ぶ中級関数型プログラミング

compact()

l <- list(NULL, 1, 2, 3, NULL)
l
[[1]]
NULL

[[2]]
[1] 1

[[3]]
[1] 2

[[4]]
[1] 3

[[5]]
NULL
l <- list(NULL, 1, 2, 3, NULL)
compact(l)
[[1]]
[1] 1

[[2]]
[1] 2

[[3]]
[1] 3
purrr で学ぶ中級関数型プログラミング

flatten()

my_list <- list(
  list(a = 1), 
  list(b = 2)
)
my_list
[[1]]
[[1]]$a
[1] 1


[[2]]
[[2]]$b
[1] 2
my_list <- list(
  list(a = 1), 
  list(b = 2)
)
flatten(my_list)
$a
[1] 1

$b
[1] 2
purrr で学ぶ中級関数型プログラミング

練習しましょう!

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

Preparing Video For Download...