メモ:purrrでlistのNAを置き換える

プルルルルの愛称で親しまれるpurrrがついにCRANにリリースされました。(ほんとは「ピュアラー」という発音だった気がします)

blog.rstudio.org

けっこうでかいパッケージなので紹介は後日書く(たぶん)として、ちょこちょこメモを書いていきます。

免責事項

私の理解ですが、purrrはあくまで「Functional Programming感を味わうためのパッケージ」だと思います。

餅は餅屋、listはrlistです。listを手早く処理したい人はrlistを使いましょう!

map_if

これ便利。条件にマッチするときだけ関数を適用することができる。具体的にはこんな感じ。

    list(a = "yes", b = NA, c = "yes") %>%
      map_if(is.na, ~ return("no"))
    #> 
    #> $a
    #> [1] "yes"
    #> 
    #> $b
    #> [1] "no"
    #> 
    #> $c
    #> [1] "yes"

さらに、returnを使わなくても、単に値だけを返すラムダ関数は~ ("値")のように書ける。

      map_if(is.na, ~ ("no"))