気が付いたら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については以下のリンクから調べると良いですね。