副作用を許しながらもchainしていく

集計結果を途中でプロットしながらもその結果はオブジェクトに保存しておきたい、
例えば以下のようなケースです。

library(dplyr)
> iris %>% group_by(Species) %>% summarise(avg=mean(Sepal.Length)) -> res
> plot(res)
#plot結果は省略

そんな時はmagrittrパッケージの%T>%(tee operator)を使います。

library(magrittr)
iris %>% group_by(Species) %>% summarise(avg=mean(Sepal.Length)) %T>% plot(.) -> res

tee演算子を使うことで、chainの手を休めずにプロットなどの副作用を実行することが可能になります。
この場合plotの結果をresに渡すのではなく、その1つ前のsummariseした結果をresに渡すことになります。
ちょっとタイプが面倒だけど便利!