気が付いたらRがF#になる日が来るのかもしれない、そんなことを考えていました

春ですね。最近はめっきりいろんなものの進化、早いですね。
例えばR界隈でいうと、データフレーム捌き用の高速処理ライブラリ「dplyr」の登場によって、
俺がおおよそ一年前に作ったplyrの資料がもう一年も経たずに役に立たなくなる。そういう進化の早い世界に住んでいるわけですね、僕らは。


怖い、進化怖い。


んで、dplyrを使ってるblogの記事、例えば

なんかを見てると

x <- x %>% mutate(hoge = ifelse(hoge %in% huga, "HIT", "NOT")) %>% ...

みたいなコードが出てくるわけです、%>%演算子が出てくるわけです。

で、

「何それ!俺も%>%で処理つなげたい!(dplyrにある)%.%じゃなくて、右に仕事を丸投げしてる感ある%>%使いたい!」

って、俺もやろうとしたんだけど、dplyrパッケージを入れるだけではダメで、magrittrパッケージを入れなければならなかった。


面白かったのが、このmagrittrパッケージのマニュアル(PDF)を読むと

This package is inspired by the pipe-forward mechanism in the .NET language F# (Luca Bolognese
has made an awesome video introduction to this language which is highly recommended).

って一文があり、「F#のパイプ・フォワード演算子にインスパイアされたぜ!」って仰ってるわけですよ。
そして俺はこれを見て「あぁ、世界はまた1つF#に近づいて行くんだな」って思った三連休最終日だったということです。

magrittrパッケージは普通にインストール&読込が出来て、

install.packages("magrittr")
library(magrittr)

これで%>%演算子が使えるようになって、

> iris %>% summary
  Sepal.Length    Sepal.Width     Petal.Length    Petal.Width          Species  
 Min.   :4.300   Min.   :2.000   Min.   :1.000   Min.   :0.100   setosa    :50  
 1st Qu.:5.100   1st Qu.:2.800   1st Qu.:1.600   1st Qu.:0.300   versicolor:50  
 Median :5.800   Median :3.000   Median :4.350   Median :1.300   virginica :50  
 Mean   :5.843   Mean   :3.057   Mean   :3.758   Mean   :1.199                  
 3rd Qu.:6.400   3rd Qu.:3.300   3rd Qu.:5.100   3rd Qu.:1.800                  
 Max.   :7.900   Max.   :4.400   Max.   :6.900   Max.   :2.500   

と出来ますよと。うん、気持ちいい。

追記

によると、次期版のdplyrから%>%が正式採用される模様ですね(%.%も今後もサポートはされるとのこと)。
・・・ってここに書いてありました。