SlideShare une entreprise Scribd logo
1  sur  17
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

Contenu connexe

Tendances

プログラミングコンテストでの乱択アルゴリズム
プログラミングコンテストでの乱択アルゴリズムプログラミングコンテストでの乱択アルゴリズム
プログラミングコンテストでの乱択アルゴリズム
Takuya Akiba
 
強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)
強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)
強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)
Shota Imai
 
プログラミングコンテストでの動的計画法
プログラミングコンテストでの動的計画法プログラミングコンテストでの動的計画法
プログラミングコンテストでの動的計画法
Takuya Akiba
 

Tendances (20)

Binary indexed tree
Binary indexed treeBinary indexed tree
Binary indexed tree
 
プログラミングコンテストでの乱択アルゴリズム
プログラミングコンテストでの乱択アルゴリズムプログラミングコンテストでの乱択アルゴリズム
プログラミングコンテストでの乱択アルゴリズム
 
バンディットアルゴリズム入門と実践
バンディットアルゴリズム入門と実践バンディットアルゴリズム入門と実践
バンディットアルゴリズム入門と実践
 
Chokudai search
Chokudai searchChokudai search
Chokudai search
 
強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)
強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)
強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)
 
Kaggleのテクニック
KaggleのテクニックKaggleのテクニック
Kaggleのテクニック
 
楽しい研究のために今からできること 〜新しく研究を始める皆さんへ〜
楽しい研究のために今からできること 〜新しく研究を始める皆さんへ〜楽しい研究のために今からできること 〜新しく研究を始める皆さんへ〜
楽しい研究のために今からできること 〜新しく研究を始める皆さんへ〜
 
グラフデータの機械学習における特徴表現の設計と学習
グラフデータの機械学習における特徴表現の設計と学習グラフデータの機械学習における特徴表現の設計と学習
グラフデータの機械学習における特徴表現の設計と学習
 
ダブリング
ダブリングダブリング
ダブリング
 
明日使えないすごいビット演算
明日使えないすごいビット演算明日使えないすごいビット演算
明日使えないすごいビット演算
 
NumPy闇入門
NumPy闇入門NumPy闇入門
NumPy闇入門
 
高速な倍精度指数関数expの実装
高速な倍精度指数関数expの実装高速な倍精度指数関数expの実装
高速な倍精度指数関数expの実装
 
動的計画法
動的計画法動的計画法
動的計画法
 
機械学習 / Deep Learning 大全 (4) GPU編
機械学習 / Deep Learning 大全 (4) GPU編機械学習 / Deep Learning 大全 (4) GPU編
機械学習 / Deep Learning 大全 (4) GPU編
 
プログラミングコンテストでの動的計画法
プログラミングコンテストでの動的計画法プログラミングコンテストでの動的計画法
プログラミングコンテストでの動的計画法
 
最適化計算の概要まとめ
最適化計算の概要まとめ最適化計算の概要まとめ
最適化計算の概要まとめ
 
新分野に飛び入って半年で業績を作るには
新分野に飛び入って半年で業績を作るには新分野に飛び入って半年で業績を作るには
新分野に飛び入って半年で業績を作るには
 
CRF を使った Web 本文抽出
CRF を使った Web 本文抽出CRF を使った Web 本文抽出
CRF を使った Web 本文抽出
 
プレゼン・ポスターで自分の研究を「伝える」 (How to do technical oral/poster presentation)
プレゼン・ポスターで自分の研究を「伝える」 (How to do technical oral/poster presentation)プレゼン・ポスターで自分の研究を「伝える」 (How to do technical oral/poster presentation)
プレゼン・ポスターで自分の研究を「伝える」 (How to do technical oral/poster presentation)
 
動的計画法を極める!
動的計画法を極める!動的計画法を極める!
動的計画法を極める!
 

Similaire à dplyrとは何だったのか

opensource and accessibility (Dec2000) Part 2
opensource and accessibility (Dec2000) Part 2opensource and accessibility (Dec2000) Part 2
opensource and accessibility (Dec2000) Part 2
Takuya Nishimoto
 

Similaire à dplyrとは何だったのか (20)

Juliaで前処理
Juliaで前処理Juliaで前処理
Juliaで前処理
 
Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム
Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコムResemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム
Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム
 
深層学習よもやま話
深層学習よもやま話深層学習よもやま話
深層学習よもやま話
 
CDH4->5 update苦労話
CDH4->5 update苦労話CDH4->5 update苦労話
CDH4->5 update苦労話
 
情報処理とは何か あとbigdataとか
情報処理とは何か あとbigdataとか情報処理とは何か あとbigdataとか
情報処理とは何か あとbigdataとか
 
Tokyo.R女子部発表スライド「Rではじめるデータ解析の超基礎」
Tokyo.R女子部発表スライド「Rではじめるデータ解析の超基礎」Tokyo.R女子部発表スライド「Rではじめるデータ解析の超基礎」
Tokyo.R女子部発表スライド「Rではじめるデータ解析の超基礎」
 
20181206 Jazug DataScience TeamBuilding and DevOps
20181206 Jazug DataScience TeamBuilding and DevOps20181206 Jazug DataScience TeamBuilding and DevOps
20181206 Jazug DataScience TeamBuilding and DevOps
 
opensource and accessibility (Dec2000) Part 2
opensource and accessibility (Dec2000) Part 2opensource and accessibility (Dec2000) Part 2
opensource and accessibility (Dec2000) Part 2
 
20180110 AI&ロボット勉強会 Deeplearning4J と時系列データの異常検知について
20180110 AI&ロボット勉強会 Deeplearning4J と時系列データの異常検知について20180110 AI&ロボット勉強会 Deeplearning4J と時系列データの異常検知について
20180110 AI&ロボット勉強会 Deeplearning4J と時系列データの異常検知について
 
データプランナーによるデータ系施策について
データプランナーによるデータ系施策についてデータプランナーによるデータ系施策について
データプランナーによるデータ系施策について
 
Tokyo r38
Tokyo r38Tokyo r38
Tokyo r38
 
データ分析概略
データ分析概略データ分析概略
データ分析概略
 
Hadoop上の多種多様な処理でPigの活きる道 (Hadoop Conferecne Japan 2013 Winter)
Hadoop上の多種多様な処理でPigの活きる道 (Hadoop Conferecne Japan 2013 Winter)Hadoop上の多種多様な処理でPigの活きる道 (Hadoop Conferecne Japan 2013 Winter)
Hadoop上の多種多様な処理でPigの活きる道 (Hadoop Conferecne Japan 2013 Winter)
 
リクルートライフスタイルの考える ストリームデータの活かし方(Hadoop Spark Conference2016)
リクルートライフスタイルの考えるストリームデータの活かし方(Hadoop Spark Conference2016)リクルートライフスタイルの考えるストリームデータの活かし方(Hadoop Spark Conference2016)
リクルートライフスタイルの考える ストリームデータの活かし方(Hadoop Spark Conference2016)
 
Tokyo r30 beginner
Tokyo r30 beginnerTokyo r30 beginner
Tokyo r30 beginner
 
ビッグデータ&データマネジメント展
ビッグデータ&データマネジメント展ビッグデータ&データマネジメント展
ビッグデータ&データマネジメント展
 
TokyoR79 beginnerssession1
TokyoR79 beginnerssession1TokyoR79 beginnerssession1
TokyoR79 beginnerssession1
 
僕の考える最強のビックデータエンジニア
僕の考える最強のビックデータエンジニア僕の考える最強のビックデータエンジニア
僕の考える最強のビックデータエンジニア
 
ネットワーク運用とIoT
ネットワーク運用とIoTネットワーク運用とIoT
ネットワーク運用とIoT
 
High performance python computing for data science
High performance python computing for data scienceHigh performance python computing for data science
High performance python computing for data science
 

Plus de yutannihilation (6)

Tidyverseとは
TidyverseとはTidyverseとは
Tidyverseとは
 
匿名バイナリ配布集団rwinlib
匿名バイナリ配布集団rwinlib匿名バイナリ配布集団rwinlib
匿名バイナリ配布集団rwinlib
 
go-apt-cacher/mirror
go-apt-cacher/mirrorgo-apt-cacher/mirror
go-apt-cacher/mirror
 
ggplot2再入門(2015年バージョン)
ggplot2再入門(2015年バージョン)ggplot2再入門(2015年バージョン)
ggplot2再入門(2015年バージョン)
 
押してダメなら引いてみろ! ggplot2逆引きプロジェクト
押してダメなら引いてみろ! ggplot2逆引きプロジェクト押してダメなら引いてみろ! ggplot2逆引きプロジェクト
押してダメなら引いてみろ! ggplot2逆引きプロジェクト
 
Github pagesでRPubsにサヨナラ!
Github pagesでRPubsにサヨナラ!Github pagesでRPubsにサヨナラ!
Github pagesでRPubsにサヨナラ!
 

dplyrとは何だったのか