purrr

purrr

ベクトルやリストなどの各要素に対する繰り返し処理

基本関数

map_*

map2_*

reduce()

accumulate

pmap

purrr::pmap(.l, .f, …)

3つ以上の引数を受け取る関数を適用する

渡すリスト(データフレームでもいい)の(.l)の要素名と、適用する関数 (.f) の引数名を一致させる必要がある。

pmap(data.frame(a = 1:3, b = 4:6), function(a, b) {a * b})

その他関数

エラー処理

plyr::failwith() purrr::possibly pmap

partial

データフレームの各行に対する繰り返し

furrr

future::plan(future::multiprocess(), workers = 10L)
result <-furrr::future_map()

list を vector に変換する purrr::flatten_*()

例えば、purrr::map()で返ってくる値が、文字列ベクトルを要素として持つ List である場合に、リストの要素を1つの文字列ベクトルとしてまとめたいことがある。

# ベクトルを要素として持つリスト `.x` をベクトルに変換する。
purrr::flatten_lgl(.x)
purrr::flatten_int(.x)
purrr::flatten_dbl(.x)
purrr::flatten_chr(.x)
purrr::flatten_raw(.x)

# 階層性のあるlistを一段階解消する。返値はリスト
purrr::flatten(.x)

# リストの要素をデータフレームに結合して返す
purrr::flatten_dfr(.x, .id = NULL)
purrr::flatten_dfc(.x)