0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

R言語でゴルフのスコアをデータ分析してみる【準備編】

Posted at

はじめに

R言語、RStudioを使って自分のゴルフスコアを分析してみます。
まずは、RStuidoにスコアデータを取り込んでデータ分析を開始できるところまでを準備編とします。

環境

・Mac mini M2 Pro
・macOS Sequoia 15.3.2
・RStudio 2024.12.1 Build 563

データ分析の目的

ゴルフを初めて4年程たちますがなかなか上手くなりません。現状を分析しどうすれば上手くなるかの指針を得るために、これまでに記録したデータを多方面から分析していきます。
スコアは当初からGDOスコアアプリを使って記録していますので、それを取り込みます。

対象データ

対象日:2021年7月から2025年4月まで
ホールデータ:1710ホール
ラウンドデータ:95ラウンド

データ準備

データのCSV化

GDOスコアアプリがデータをCSVで出力してくれれば一番いいのですが、そのような機能はありません。そこで、Web版で以下のように表示されるデータを無理やりコピー&ペーストでMacのNumbersに取り込むことにしました。

GDOAppScreenShot.png

これが一番の面倒な作業でしたが、慣れてくると手際良く進められます。Numbersではこのような表示になります。これをCSVファイルに書き出します。

NumbersScreenShot.png

RStudioへの読み込み

次にこのCSVファイルをR Studioに取り込みます。

HoleData.R
#read csv file as dataframe
JoDataCsv <- read.csv("JoHoleData.csv")

このデータフレームに計算で求められるResult列を追加したデータフレームを作成します。これがホールデータの基本になります。

HoleData.R
# 11列にResult列(ParとかBoggyを数字で表現)を挿入 最大15列を想定
JoData <- cbind(JoDataCsv[,seq(1,10)], Result=(JoDataCsv$Score-JoDataCsv$Par), JoDataCsv[,seq(11,15)] )

RStudioの画面ではこのようになります。

RStudioHoleData.png

次にこのホールデータからラウンドデータを作成します。

HoleData.R
# ラウンド毎のサマリの表を作る
library(tidyverse)
JoRoundData <- JoData %>% group_by(RoundID,Date,CourseName) %>% summarise( Par=sum(Par),Score=sum(Score),Putt=sum(Putt) )

このラウンドデータはRStudioでは以下のように表示されます。

RStudioRoundData2.png

これで分析のベースとなるデータフレームが作成できました。準備完了です。

最初の分析

おまけで最初の分析を行います。

【仮説】毎年上手くなっている

全てのラウンドスコアを年毎に箱ひげ図にしてみました。ソースコードはこちら

HoleData.R
#年ごとのScoreをまとめる
JoRoundData2021 <- subset(JoRoundData, subset = grepl("2021",Date) )
JoRoundData2022 <- subset(JoRoundData, subset = grepl("2022",Date) )
JoRoundData2023 <- subset(JoRoundData, subset = grepl("2023",Date) )
JoRoundData2024 <- subset(JoRoundData, subset = grepl("2024",Date) )
JoRoundData2025 <- subset(JoRoundData, subset = grepl("2025",Date) )

list = list( Year2021=JoRoundData2021$Score, Year2022=JoRoundData2022$Score, 
             Year2023=JoRoundData2023$Score, Year2024=JoRoundData2024$Score,
             Year2025=JoRoundData2025$Score)

#箱ひげ図を作成
boxplot(list , col="Yellow",outline=T)

結果は以下の通りで、まずは仮説は立証されました。

Hakohigezu.png

まとめ

GDOスコアアプリのデータをRStudioに取り込んでデータ分析する準備ができました。RStudioでは様々なデータ分析・可視化が簡単にできますので、色々な仮説をデータで実証していきたいと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?