dplyrとは
何だったのか
2016/04/30@Tokyo.R53
@yutannihilation
1
自己紹介
•@yutannihilation
•インフラエンジニア
•電子工作ワナビー
•匿名知的集団ホクソエム
ではない。ただの人。
2
dplyrとは
•R界の神・Hadley Wickhamがつくったパッ
ケージ
•データ操作に特化している
•様々なバックエンドを使える
3
Introduction to dplyr
訳したので詳しくは読んでください。
4http://qiita.com/yutannihilation/items/7a78d897810446dd6a3b
1. Identify the most important data
manipulation tools needed for data
analysis and make them easy to use
from R.
dplyrの設計思想
5
意訳:データ操作といえばこれ!的なのをつ
くっちゃうよ。
2. Provide blazing fast performance for
in-memory data by writing key
pieces in C++.
dplyrの設計思想
6
意訳:C++使っちゃうよ。
3. Use the same interface to work with
data no matter where it's stored,
whether in a data frame, a data table
or database.
dplyrの設計思想
7
意訳:data.frameでもDBでも同じノリで
データを操作できちゃうよ。
8
同じノリ?
9
MySQL
PostgresSQL
Presto
R
色々なバックエンドが
ある場合の例
10
MySQL
PostgresSQL
Presto
R
→ 方言の違いつらい…
そもそもSQLよくわからない…
SELECT depname, avg(salary)
OVER (PARTITION BY depname)
FROM salary
WHERE hoxo = “m”;
それぞれに
集計クエリを投げる
11
MySQL
PostgresSQL
Presto
R
データを全部取り出して
Rで集計
12
MySQL
PostgresSQL
Presto
R
→ データサイズ・速度の問題
データを全部取り出して
Rで集計
13
MySQL
PostgresSQL
Presto
R
→ dplyrの書き方だけ覚えればOK!
dplyr
data_src %>%
select(…) %>%
filter(…) %>%
…
dplyrを使う
14
MySQL
pgSQL
Presto
R
※なかったらつくる! それが某匿名
知的集団の誓いだったはず!!!です
が私はホクソエムではありません。
dplyr
無限の可能性!(たぶん)
Bigquery
Spark
…
data.table
data.frame
15
逆に考えるんだ…
16
MySQL
pgSQL
Presto
R
逆に言うと、さまざまなバックエンドを
想定しているので複雑なことはできない。
dplyr
無限の可能性…?
Bigquery
Spark
…
data.table
data.frame
まとめ
•dplyrはつよい。いいね?
•でも、dplyrは抽象化のためにいろんなもの
を犠牲にしているかも
•複雑なことをするなら時にはdplyrから離れ
ることも必要かも
(tidyr、purrr、data.table…)
17

dplyrとは何だったのか