Hatena::ブログ(Diary)

盆栽日記

2014-07-30

:=でコードをシンプルにする

下記のようにグループ化して求めた統計量を元のデータに付加することは多々あると思います。

library(dplyr)
iris <- iris %>% group_by(Species) %>% mutate(Sp.mean=mean(Sepal.Length))

しかし、ここでirisを2回も書くのは冗長なのでシンプルにしたい。

そんな時こそmagrittrの:=です。

Compound assignment operatorといいます。

これを使うと以下のように書き直せます。

library(dplyr)
library(magrittr)
iris := group_by(Species) %>% mutate(Sp.mean=mean(Sepal.Length))

少しシンプルになりましたね。

以前も書いた気がするのですが使ってみて結構便利だったのでもう一度書きました。