purrr
昨日の記事のコメント欄でmap()を使うやり方を教えてもらったので、触発されて自分でもやってみる。
追記(2020/07/04): この記事の予想は外れ、 rowwise() は dplyr 1.0.0 で華麗な復活を遂げました。 追記(2017/11/17): RStudio Communityで質問してみたところ、「もう機能追加されないしドキュメントでも言及されないけど、まあ数年は残るんじゃね?」とい…
なんか意外と変更点多いなと思ったのでリリースノートを眺めてみます。
例えば、適当な文字列からaで始まる単語を抜き出してみる(こんなことはstr_locate_all()を使わなくてもできるけど、まあ例ということで) library(stringr) library(purrr) x <- c("asymmetry between apple and banana", "aspiration after surgery") # \\…
某ウェブサービスのデータをAPI経由でRから取ってくるkntnrというパッケージをつくりました。 このパッケージを作るのは、実は2年間に3度くらい作りかけてはあきらめて、というのを繰り返してきました。というのも、JSONをdata.frameに変換するのが大変すぎ…
transpose()はやい。
R4DSに書いてある話。 たとえばこういう要素があるとする。
これはうまくいく。 common_params <- list(zero = 0, one = 1) data.frame(x = seq(1, 10)) %>% mutate_(.dots = common_params) #> x zero one #> 1 1 0 1 #> 2 2 0 1 #> 3 3 0 1 #> 4 4 0 1 #> 5 5 0 1 #> 6 6 0 1 #> 7 7 0 1 #> 8 8 0 1 #> 9 9 0 1 #> 1…
r-wakalangでそんな話があった時のメモ。もっといいコードがある気もしつつ、まあこれが割とシンプルなのではないでしょうか。問題は、purrrの使い方をいざという時に思い出せないというだけで。。(重大) plyr::mdply() 私はポストplyr世代なのでplyrまっ…
purrrにも部分適用をする関数partial()があるんですけど、↓の記事のやり方を調べてた時にちょっとつまづいたのでメモ。 部分適用はS3のgeneric関数と相性が悪いことがあります。
purrr 0.2.0がCRANにきてました。けっこう色々変更があります。 dplyrとの兼ね合いでどこを変えるかまだ試行錯誤している雰囲気があって、まだまだbreaking changeが入りそうな雰囲気です。がっつり使うのはまだ控えたほうがいいかも...。
crossは、複数ベクトルの直積集合を返す、すなわち、いい感じのexpand.grid()です。 完。 ...というくらいに特筆すべきことはないと思うんですけど、↓こんな記事もあったので、いちおう書いときます。
追記:invoke()はバージョン0.2になってだいぶ挙動が変わりました。(参考:purrr 0.2.0を使ってみる - Technically, technophobic.)「一組の引数に複数の関数を適用」は、invoke()ではなくてinvoke_map()です。そのうち書き直しますが今はとりあえずこのま…
liftは、関数型言語の「持ち上げ」という概念ですが...、すみません、私これまったく理解できません…。 stackoverflow.com まあ、概念はさっぱり頭に入ってきませんが、私は、Rでは「引数の形を変える」くらいの意味だと理解しています。知ってる人は知って…
追記(2015/11/15): zip_*()はtranspose()になるらしいです。やっぱりまだコロコロ変わりますね...。 github.com zipは、複数のベクトルを、各要素のペアのリストにします。PythonとかHaskellにあるのと同じやつです。 ただ、すべてがベクトルなRだと、他の…
walk()、地味に難しかったです。ヘルプを見ても使用例がひとつも載ってない… RStudioブログの記事には、こう書いてあります。 walk() takes a vector, calls a function on piece, and returns its original input. It’s useful for functions called for th…
purrrがついに出ました!!! 思ったより早かったです。 blog.rstudio.org
プルルルルの愛称で親しまれるpurrrがついにCRANにリリースされました。(ほんとは「ピュアラー」という発音だった気がします) blog.rstudio.org けっこうでかいパッケージなので紹介は後日書く(たぶん)として、ちょこちょこメモを書いていきます。