cucumber flesh

Rを中心としたデータ分析・統計解析らへんの話題をしていくだけ

Tokyo.R#87でdata.tableパッケージの発表をしました

先日開催された第87回Tokyo.Rにおいてdata.tableパッケージに関する発表を行いました。 ここでは発表資料へのリンクと補足を書きます。

今回のスライド作成に関して、GitHubスポンサーの皆さんからの援助を受けています。 どうもありがとうございました。この場を借りて感謝いたします。

発表内容

当日の資料をspeakerdeckにアップロードしています。

speakerdeck.com

今こそ、data.tableを学ぼう! / datatable1130 - Speaker Deck

共有した画面上でカラーピッカーがデカデカと表示されたまま進行してしまったようで、どうもすみませんでした。 ご指摘ありがとうございました。

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オブジェクト)に対して [演算子を使い、その中で次の画像に示す規則で処理を記述することになります。

f:id:u_ribo:20200806085002j:plain

data.tableの文法を効率的に学習するにはdplyrでの処理と比較したら良いのではと思い、今回のスライドではdplyrのコードも掲載しています。

現実的な使い分けについてはTwitterで頂いたコメントへの返信の通り

普段使いのコードは馴染みのあるものを、ただ必要に迫られた際のためにどちらも覚えておくと良い、 と身も蓋もない話になってしまいますがそう思います。

スライド作成

フォント

発表後のチャット欄で「フォントは何を使っているか」という質問がありました。今回のスライドで用いたフォントは以下の通りです。

  • Canela Text
  • Font Awesome 5 Brands
  • FOT-ラグランパンチ
  • FOT-ロックンロール
  • Hack
  • Rockwell

このうち、「ラグランパンチ」、「ロックンロール」はフォントワークスmojimoサービスが提供するフォントパックに含まれるものです。「ラグランパンチ」はアニメ「キルラキル」やゲームソフトの「ゼルダの伝説 Breath of the world」で使われているものです。インパクトがあって見出しに適していますね。お気に入りです。

f:id:u_ribo:20200806090300j:plain

36書体が、年間定額

利用するコンピュータは一台のみの制約がありますが、切り替えもシンプルなので年間3,600円はお得です。 フォントを契約する余裕が生まれたのはGitHubスポンサーで支援してくださる方がいたためです。 発表の機会が増えるなら買ってしまえ、と契約に至りました。

カラーパレット

pals::pal.bands(c("#040A0F", "#EB6257", "#E98353", "#F1B952", "#F3CF50", "#F4EDCD"))

f:id:u_ribo:20200806083349p:plain

  • #040A0F
  • #EB6257
  • #E98353
  • #F1B952
  • #F3CF50
  • #F4EDCD

最初は違う色を使っていましたが、どうも馴染まなくて一部を変更しました。そのせいもあってか、普段は4~5色に抑えようとしているので、少し多くなってしまいました。 ドイツっぽいなーと思いますw

Enjoy!