Tokyo.R#87でdata.tableパッケージの発表をしました
先日開催された第87回Tokyo.Rにおいてdata.table
パッケージに関する発表を行いました。
ここでは発表資料へのリンクと補足を書きます。
今回のスライド作成に関して、GitHubスポンサーの皆さんからの援助を受けています。 どうもありがとうございました。この場を借りて感謝いたします。
発表内容
当日の資料をspeakerdeckにアップロードしています。
今こそ、data.tableを学ぼう! / datatable1130 - Speaker Deck
共有した画面上でカラーピッカーがデカデカと表示されたまま進行してしまったようで、どうもすみませんでした。 ご指摘ありがとうございました。
カラーパレットくん堂々の存在感(Speakerdeckからみよう) #TokyoR
— Kien Y. Knot (@0_u0) 2020年8月1日
dplyrとの使い分け
data.table
パッケージはしばしば、データ操作という観点でdplyr
パッケージとともに引き合いに出されます。
Rでのデータ操作といえばdplyr!そういう流れを感じますし、自分自身もdplyrファンで普段のコードもdplyr含めたtidyverseのものを使っています。
一方で時々、人様のコードを読む機会があるとdata.tableパッケージを使うものに遭遇します。
その時、data.tableで処理されたコードが読めないと困ります。
data.tableとdplyrを使ったデータ操作のコードの大きな違いは、
- data.table: データを宣言し、
[
の内部でデータへの処理を記述する - dplyr: verbと呼ばれるデータに対する振る舞いを関数化、必要に応じてパイプ演算子(
%>%
)によって処理を繋げていく
です。dplyrに馴染んでいる私は、パイプ演算子の出てこないコードに立ちすくんでしまうことがありました。 (逆にdata.tableをメインに使うのであったらパイプ演算子が出てくるコードを見ても謎に感じるのではないでしょうか)
data.tableでの処理は(覚えてしまうと)シンプルです。dplyrのように複数の関数の挙動を覚える必要がありません。
対象のデータ(data.tableオブジェクト)に対して [
演算子を使い、その中で次の画像に示す規則で処理を記述することになります。
data.tableの文法を効率的に学習するにはdplyrでの処理と比較したら良いのではと思い、今回のスライドではdplyrのコードも掲載しています。
現実的な使い分けについてはTwitterで頂いたコメントへの返信の通り
昨日は勉強になりました。ありがとうございます!
— Razumall (@razumall) 2020年8月2日
実際、ほぼdata.tableだけで処理してますか?それともデータ量が軽ければdplyrで処理したり使い分けてますか?そこら辺が知りたいです。
はい、使い分はデータの量に応じることが多いです。基本はdplyrやreadr、少し遅いなと感じる規模(ギョーム以外ではKaggleとか)であればfreadで読み込んだり処理全体をdata.tableにします。
— Uryu Shinya (@u_ribo) 2020年8月2日
自分が実行するのももちろんですが、他の人のコードを理解するためにも覚えておいて損はないかと。
普段使いのコードは馴染みのあるものを、ただ必要に迫られた際のためにどちらも覚えておくと良い、 と身も蓋もない話になってしまいますがそう思います。
スライド作成
フォント
発表後のチャット欄で「フォントは何を使っているか」という質問がありました。今回のスライドで用いたフォントは以下の通りです。
このうち、「ラグランパンチ」、「ロックンロール」はフォントワークスのmojimoサービスが提供するフォントパックに含まれるものです。「ラグランパンチ」はアニメ「キルラキル」やゲームソフトの「ゼルダの伝説 Breath of the world」で使われているものです。インパクトがあって見出しに適していますね。お気に入りです。
36書体が、年間定額
利用するコンピュータは一台のみの制約がありますが、切り替えもシンプルなので年間3,600円はお得です。 フォントを契約する余裕が生まれたのはGitHubスポンサーで支援してくださる方がいたためです。 発表の機会が増えるなら買ってしまえ、と契約に至りました。
カラーパレット
pals::pal.bands(c("#040A0F", "#EB6257", "#E98353", "#F1B952", "#F3CF50", "#F4EDCD"))
#040A0F
#EB6257
#E98353
#F1B952
#F3CF50
#F4EDCD
最初は違う色を使っていましたが、どうも馴染まなくて一部を変更しました。そのせいもあってか、普段は4~5色に抑えようとしているので、少し多くなってしまいました。 ドイツっぽいなーと思いますw
#tokyor 本日の発表資料です。dplyr(tidyverse)も良いけどdata.tableもいいよ!https://t.co/C5hwjSwMfQ pic.twitter.com/ONJAX52H4o
— Uryu Shinya (@u_ribo) 2020年8月1日
Enjoy!