Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

TokyoR42_around_chaining

11,321 views

Published on

TokyoR#42

Published in: Data & Analytics
  • Be the first to comment

TokyoR42_around_chaining

  1. 1. %%%%%%%%%% %%%%%%%%%% %%%%%%%%%% %%%%%%%%%% %%%%所沢義男%
  2. 2. 最近の所沢情報 • 「データ解析のための統計モデリング入 門」読書会で発表しました – 第7章一般化線形混合モデル • 最近はレビュー職人になりました – 以下の2冊レビューさせていただきました – 「ドキュメント・プレゼンテーション生成」 – 「戦略的データマイニング」 – R本の出版前のレビュー随時受け付けており ます
  3. 3. 本日のまとめ • dplyrという便利パッケージがあります • magrittrという便利パッケージがあります • renkun(通称クオンツ蓮君)を応援しま しょう
  4. 4. dplyr、ご存じですか
  5. 5. 里洋平 著「戦略的データマイニング」より
  6. 6. そんなわけで今回は 実務で役立つ dplyrのユースケースについて ご紹介します!!!
  7. 7. なんてことはしない
  8. 8. そんな有益な話は ググればいくらでも出てくる
  9. 9. ということで今日は 皆さんの人数×20分という 貴重な時間を使って %%%%%%%%%%%%%%%%% %%%%%%%%%%%%界隈の話 をします!!!
  10. 10. まずは基礎知識 • Rでは%%で挟むことで演算子を定義 できる • 組み込みだと%in% • Hmiscの%nin%も有名 %
  11. 11. それで俺俺演算子を 作った男がいた その名は Hadley Wickham
  12. 12. そう、ggplot2の作者ですよ
  13. 13. 作ったのは%.% • chain演算子 • thenと読むらしい • Unixとか他の言語でいうところのpipeとか メソッドチェーンとか – Unixだと| – F#だと |> – juliaも|> – jQueryだと. %.%
  14. 14. こんな風につかう tbl <- group_by(iris, Species) summarise_each(tbl, funs(mean), matches("Sepal")) l 一時オブジェクトを作る必要なし l 処理が左から右に流れていくので  書いてて気持ちが良い iris %.% group_by(Species) %.% summarise_each(funs(mean), matches("Sepal"))
  15. 15. でも%.%は%>%に
  16. 16. magrittrパッケージ • %.%はもっとできのいい%>%を別パッケー ジからインポートすることで置き換えら れた • magrittrパッケージは%>%以外にもchain 関連の演算子を用意している %>%
  17. 17. chainするならmagrittr • chain関連の演算子を色々と含む • %>%とか%T>%とか:= とか • chainするときのエイリアスも用意 – [ → extract – + → add – & → and などなど
  18. 18. %>% • 左から右に処理をつないでいく • デフォルトでは最初の引数に渡される • 他の引数に渡したい時は . (ドット)を使う
  19. 19. %T>% • 副作用を利用したいときに使う • 処理の途中でプロットしつつ、最後にオ ブジェクトに保存する、とか こんな感じ iris %>% group_by(Species) %>% summarise(avg=mean(Sepal.Length)) %T>% plot(.) -> res
  20. 20. := • 以下のように処理したオブジェクトを元の オブジェクトに再代入するときに使う これが iris <- iris %>% group_by(Species) %>% mutate(all=n()) こうなる iris := group_by(Species) %>% mutate(all=n())
  21. 21. 覚えましたか
  22. 22. そんなdplyrとmagrittrの 蜜月関係に 一石を投じるものが
  23. 23. クオンツ蓮君 • 中国のクオンツ • pipeRというパッケージで%%%業界に   一石を投じる • rlistパッケージというリスト操作パッケー ジも開発→こちらは便利 • サイトは http://renkun.me
  24. 24. クオンツ蓮君の一石 pipeR • 演算子は%>>%のみ – これ1つでmagrittrの大体の機能をまかなえる • %>%の3倍以上速い • しかもPipeで囲うことで$でchainできる Pipe(iris) $group_by(Species)$tally()
  25. 25. しかし分が悪い • %>>%はタイプが面倒 • %>%は最新版のRStudioの場合、 Alt+Shift+. というショートカットがある • Rbloggersとか見てる限り蓮君なんだかグ ローバルに無視されてる気がする – 速いのに – それなりに便利なのに
  26. 26. Rグローバルリア充軍団 (※個人の感想です) vs クオンツ蓮君
  27. 27. 高くて硬い壁と、 壁にぶつかって割れてしまう卵が あるときには、 私は卵の側に立ちたい
  28. 28. 皆さんも盲目的に magrittrに走るのではなく pipeRもその検討の俎上に 挙げてほしい
  29. 29. ということで最後にまとめ • dplyrという便利パッケージがあります • magrittrという便利パッケージがあります • renkun(通称クオンツ蓮君)を応援しま しょう
  30. 30. enjoy!

×