
298
17
章
purrr
でイテレーション
#> [1] "a"
#> [1] 3
一般に
walk()
よりも
walk2()
や
pwalk()
の方が役に立ちます。例えば、グラフのリストとファイ
ル名のベクトルがあると、
pwalk()
を使って、各ファイルをディスクの対応する位置に保存できます。
library(ggplot2)
plots <- mtcars %>%
split(.$cyl) %>%
map(~ggplot(., aes(mpg, wt)) + geom_point())
paths <- stringr::str_c(names(plots), ".pdf")
pwalk(list(paths, plots), ggsave, path = tempdir())
walk()
,
walk2()
,
pwalk()
はいずれも暗黙に、第 1 引数
.x
を返します。これはパイプラインの中で
使います。
17.9
for
ループの他のパターン
purrr
には、
for
ループの他の種類を抽象化する関数も用意されています。マップ関数に比べれ
ば使用頻度は少ないのですが、知っておくと役立ちます。本節では、それらを手短に説明するので、
読者が将来同様の問題に出会ったら思い出してください。詳細はドキュメントを参照してください。
17.9.1
述語関数
TRUE
か
FALSE
を返す述語関数とともに機能する関数は多くあります。
keep()
と
discard()
は、入力要素のうち、述語が
TRUE
または
FALSE
となる要素をそれぞれ残しま ...