データ分析初心者必見!data.tableを活用した実践的なテクニックとローリング結合の魅力

データ分析の日本語情報の壁とコミュニティ事情

最近さ、data.tableって七十数個も技があるんじゃないかなとか、ぼんやり思うことが多くて。いや、本当にそんなにあるか自分でも怪しいけど、自分で手を動かしてみて初めて「あっ、これ知らなかった」って驚く瞬間が割とあったんだ。ま、いいか。

たとえばなんだけどね、readxlで読み込むとtibbleになるのよ。当たり前っちゃ当たり前。でも、それをsetDTってコマンド一発で、そのままdata.frameからdata.tableに化けさせられるの、意外と便利だったりして。カラオケの顧客データ処理してた時も確か似たような流れだった…いや、ちょっと記憶曖昧だけど、多分そうだったはず。

そういえば、「約三成くらいの人」がExcelデータ読み込んだ後にわざわざsetDT使ってるらしいって小耳にはさんだこともある。でも本当にそれ必要なの?とも思ったりするし…実際やると多少早くなるケースも無きにしもあらずなんだけど、そのへんは状況次第なのかもしれないな。うーん、不思議。

あとね、rolling joinとか関数ラップしてDT[]使うやり方――目立たないけど役立つ場面がちょこちょこ見受けられて、それ知った時「こういう地味技大事」と変に納得した。たださすがに全部ちゃんと理解できてるとは言えなくて、一部はまだふわっとしてる部分残っちゃってるかな…。まあ、そのうちなんとかなるっしょ。

本段の参照元: https://www.johnmackintosh.net/blog/2021-03-22-some-data-table-tips/

実践的なテクニックの発信と未来への期待

「readxlでデータを読み込むとtibble形式になる」――まあ、R使ってる人ならどこかで引っかかったことあるんじゃないかな。あ、そういえば最初にこの事実に気づいた時、ちょっと混乱した覚えがある。例えば顧客リストをExcelからインポートして、そのままサクッと分析しようと思ったら、「あれ?data.tableの高速処理や柔軟な参照記法がすぐ効かないぞ」と焦ることもある。なんだろうね、このもどかしさ。

で、話戻すけどsetDT()っていう関数がここですごく便利になってくるんだよね。実はこの関数、一行だけでtibbleとかdata.frameを直接data.tableに変換できちゃうから、本当に余計なコピーや手間の多いステップとか全部省ける感じ。でも…あー今思い出したけど、この操作は元のオブジェクト自体を書き換えるので注意が必要、みたいな罠もある。ま、いいか。それでも「新しい変数へ代入せず、その場で型変換したい」みたいな場面では特に重宝されている印象だよね。

うーん…ただ逆パターンとして、「いやいや名前そのままで触りたくない」って場合にはsetDTよりas.data.table()を選ぶ方が安心感あるのかなと個人的には思ったりする。でも何が正解なのかは結局状況次第なんじゃないかなぁ、とも感じている。不安になる時はいつもそうだけど、自分のやり方でしばらく進めてみて、それでもモヤモヤするなら調べ直せばいいんじゃない?

実践的なテクニックの発信と未来への期待

Related to this topic:

Comments