NBAのデータ分析がしたい NBAloveRパッケージの紹介

本記事の概要

  • NBAloveRパッケージ作成の理由
  • パッケージの紹介
  • まとめ


NBAloveRパッケージ作成の理由
最初にデータ分析に興味を持ったのが、こちらの方の記事のおかげでした。
gg-hogehoge.hatenablog.com

少しばかり勉強していたプログラミングの知識とライフワークでもあるNBAの試合観戦を融合させて、面白いことができそうだなと漠然的に思ったのを今でも覚えてます。



一方で始めてみるとNBAのデータを分析するためのソースが不十分であると感じました。その一つの理由として考えられるのは、野球などのスポーツと比べてバスケのデータは離散型のデータが少ないため、データを活用しようと動きが比較的新しく歴史が浅いという点だと思います。

その中でも見つけられたのは
https://cran.r-project.org/web/packages/SportsAnalytics/SportsAnalytics.pdf
github.com

以上の二つくらいだったと思います。


一つ目のは明らかに、NBAデータに関しての機能が少なかったし、二つ目は、Pythonライブラリであり自分がRで補完できるような機能を作成できれば、有意義であると感じたためです。


そこで、思い立ったのが自分でパッケージを作ってしまおうということでした。

しかし、それほどプログラミンの知識がなかったため留学先で授業のチューターに聞いたり、以下ののサイトなどで見よう見まねで作ったのがNBAloveRパッケージでした。

www.datacamp.com


github.com

パッケージを開発する前は以下のサイトからコピペしたりスクレイピングしたりしてデータを準備していました。
www.basketball-reference.com

しかし、パッケージを活用することでそのような準備段階で重複している作業の削減や効率化が少なからずできたし、データ取得から分析までのフローを一つのRmarkdown上で行うことが可能なり、ワークフローを簡略化することができたと思います。


パッケージの内容
現在は主にデータ取得の機能が使えるようになってます。

NBAデータ分析をする際にもっとも大変なのがデータの取得や準備、さらに加工や整形といった部分がもっとも大変だし時間を浪費すると感じていたからです。

  • getHOF(): 殿堂入り選手のデータを取得する
  • getDraftResult(year): 年ごとのドラフトピックの結果を取得できる
  • seasonSchedule(Team, year): シーズン、チーム毎のスケジュールと過去の試合結果を取得できる
  • statsCompare(player_list, Age): 指定した選手たちの試合毎の得点をシンプルな折れ線グラフで比較できる(現段階においては唯一の可視化が出力される関数となっている)
  • getStandings(year, conf): 年毎のリーグのチームランキングを取得できる。confという引数を指定すればカンファレンス毎の結果も取得が可能
  • getPlayers(): 歴代の全ての選手のデータが取得可能
  • getFranchise(): チーム毎の歴代のデータの取得が可能
  • getStats(): シーズン毎の選手のスタッツを取得できる
  • getStatsSummary(Name): 指定された選手のキャリアサマリーデータの取得がかのう
  • getTeamSalary(team_code): 指定されたチームの最新のサラリーの配分が確認できる
  • getTeamHistory(team_code): 指定されたチームのシーズン毎のデータが取得可能

以上の11機能が現段階では利用可能です。
実際の使用例については過去のポストや今後アップロードする記事を参照にして下さい。

kokiando.hatenablog.com


まとめ
野球などよりもデータ分析という点ではNBAはもう少し盛り上がって欲しいと思っているので、興味がある人がいれば改善点などを教えてくださると助かります。

github.com

問題点やバグなどがあれば気軽にご連絡下さい。