見出し画像

【baseballr大解剖】第5, 6章

baseballrに収録されているコードの解説文を日本語訳したnoteです。

目次
第1章 データの情報源
第2章 各種ID
第3章 データ取得 part1
第4章 セイバーメトリクス
第5章 データ取得 part2
第6章 エラー・不明・辞書など
 

第1~4章までのnoteはこちら。

5.1 試合情報

・日程

a57 <- mlb_schedule(season = 2022, level_ids = "1")
a58 <- mlb_schedule_event_types()

a59 <- mlb_schedule_games_tied(season = 2022)

a60 <- mlb_schedule_postseason(season = 2021)
a61 <- mlb_schedule_postseason_series(season = 2021, sport_id = 1)

a25 <- mlb_game_status_codes()
a27 <- mlb_game_types()

任意のシーズンと階級の年間スケジュールを取得するコード。
…tiedのは、MLBの引き分け試合の情報を取得できる。a60とa61はポストシーズンの情報。詳しい中身はa25やa27を参照する。

【収録内容】
日付、game_pk、day or night、ダブルヘッダーか否か、両チームのスコア、game_typeなど計70列

・メイン

w <- get_game_pks_mlb(date = "2022-05-17", level_ids = c(1))

任意の日付に開催された試合の情報を取得するコード。

【収録内容】
game_pkや試合開始時間、天候、観客数のほかに、各チームの点数なども収録されている。

・サブ

u <- get_game_info_mlb(game_pk = 661196)
u <- mlb_game_info(game_pk = 661196)

v <- get_game_info_sup_petti()
v <- load_game_info_sup()

天候、気温、試合開始時間、観客数などを取得できる。
下ふたつは、2008年以降全試合の情報を拾うコード。

・打順

r <- get_batting_orders(game_pk = 661196type = "starting")

s <- get_batting_orders(game_pk = 661196type = "all")
s <- mlb_batting_orders(game_pk = 661196type = "all")

任意の試合の打順を取得できる。

【引数】
type:
 試合開始時点の打順(starting) or 途中交代を含めた打順(all)

・先発投手

a2 <- get_probables_mlb(game_pk = 661196)
a2 <- mlb_probables(game_pk = 661196)

任意の試合の、先発投手を取得するコード。データは2×8列。

・観客動員数

a11 <- mlb_attendance(team_id = 158, season = 2021)
a111 <- mlb_attendance(league_id = 104, season = 2021, date = NULL,
                       league_list_id = NULL)

ひとつの球団、あるいはリーグごとの観客数を取得するコード。引数dateがNULLの場合、年間動員数を得られる。

・中継放送

a20 <- mlb_game_content(game_pk = 661196)

・その他

a23 <- mlb_game_pace(season = 2022, start_date = "2022-04-07", end_date = "2022-04-10")

任意の期間における、試合ペース(試合時間、平均球数など)を取得できる。

5.2 選手・球団情報

・biography

a45 <- mlb_people(person_ids = 592885)
a68 <- mlb_sports_players(sport_id = 1, season = 2021)

MLBIDをもとに任意の選手のバイオグラフィーを取得できる。a68は、全選手の分を取得できるコード。

・フロント

a84 <- mlb_team_personnel(team_id = 158, date = "08/28/2017")

フロント職の人名を取得できる。しかし、2018年以降のデータは拾えない。

・コーチ

a80 <- mlb_team_coaches(team_id = 158, season = 2021)

任意のチーム、シーズンのコーチ編成。

・球団ヒストリー

a81 <- mlb_team_history(team_ids = 158)
a82 <- mlb_team_info(team_id = 158)

任意のチームの歴史(MILだったら、前身はパイロッツだったことなど)


・マイナーリーグ

a78 <- mlb_team_affiliates(team_ids = 158, sport_ids = 1)

任意のチームの傘下球団の情報

a98 <- teams_lu_table

全球団のマイナー球団の情報を取得できる。しかし、MILのAAAチーム「Nashvile Sounds」の親チームがTEXになっていた。信用ならない。

・審判、その他

a4 <- get_umpire_ids_petti()
a4 <- load_umpire_ids()

2008年以降の全試合の審判に関する情報を取得できる。

a35 <- mlb_job_types()

a36 <- mlb_jobs(job_type = "UMPR", sport_id = 1, date = "2022-04-10")
a37 <- mlb_jobs_datacasters(sport_id = 1)
a38 <- mlb_jobs_official_scorers(sport_id = 1)
a39 <- mlb_jobs_umpires(sport_id = 1)

MLBに携わる様々な役職の情報(?)を取得できる。

5.3 その他

・オールスター投票

a7 <- mlb_all_star_write_ins(league_id = 103, season = 2021)
a8 <- mlb_all_star_ballots(league_id = 103, season = 2021)
a9 <- mlb_all_star_final_vote(league_id = 103, season = 2021)

オールスターに参加資格のある選手
→ファン投票でピックアップされた選手
→最終投票で選出された選手

【引数】
league_id:AL = 103, NL = 104 
※なぜかALにAlbiesが混じってる

・ホームランダービー

a32 <- mlb_homerun_derby(game_pk = 511101)
a33 <- mlb_homerun_derby_bracket(game_pk = 511101)
a34 <- mlb_homerun_derby_players(game_pk = 511101)

打球が飛んだ位置とかが拾える。

・ドラフト

t <- get_draft_mlb(year = 2020)
t <- mlb_draft(year = 2020)

t1 <- mlb_draft_latest(year = 2020)
t2 <- mlb_draft_prospects(year = 2021)

任意の年のドラフト情報を拾うコード。
t1は、最も新しく(全体最下位で)指名された選手の情報を拾う。
t2はドラフト対象選手全てを取得する関数と推測される。

【収録内容】
指名された選手の名前、生年月日、出身大学/高校、指名順、スカウティングレポートのリンクなど、計72列。

・FA情報

a46 <- mlb_people_free_agents(season = 2021)


・ロースター

a54 <- mlb_roster_types()
a55 <- mlb_rosters(team_id = 111, date = NULL, season = 2022, roster_type = "40Man")

【引数】
roster_type
・40Man   ・active
・fullSeason   ・allTime
・fullRoster    ・depthChart
・gameday  ・coach
・nonRosterInvitees 


以降、第6章「エラー・不明」

6.1 エラー

edge判定

edge_code(df, height_var_name = "b_height")
edge_frequency(df, group = NULL)

PITCHf/xデータをもとに、Edgeゾーンに投球されたどうかを判定するコード。打者の身長と立ち位置(右or左)、投球ゾーンのデータが必要。それをもとに、edgeゾーンに投球された割合を求める。

PITCHf/xの運用が止まっているという噂を耳にしたので深入りしない。


a51 <- mlb_player_game_stats(person_id = 592885, game_pk = 661196)
a52 <- mlb_player_game_stats_current(person_id = 623352)

a62 <- mlb_seasons(sport_id = 1, with_game_type_dates = TRUE)
a63 <- mlb_seasons_all(sport_id = 1)


a79 <- mlb_team_alumni(team_id = 137, stat_group = 'hitting', season = 2021)

上のコードを実行したら、こんなエラーが出た。

Request failed [500]Retrying in 1 seconds...
Request failed [500]Retrying in 1 seconds...
2022-07-21 17:29:12Invalid arguments provided

6.2 辞書

データフレームの列名やデータが省略表記されていることが多く、それの索引みたいな役割を果たすのがこれらのコード。

a17 <- mlb_event_types() #イベント内容, scデータと参照すべき(70×5)
a31 <- mlb_hit_trajectories() #ヒットのタイプ情報(7×2)
a40 <- mlb_languages() #言語(4×3)
a41 <- mlb_league(seasons = 2021, sport_id = 1) #リーグ情報(4×20)


a44 <- mlb_metrics() #単位に関する情報(21×4)

a48 <- mlb_pitch_types() #球種(24×2)
a49 <- mlb_player_status_codes() #ロースターステータス(32×2)
a50 <- mlb_positions() #(37×11)
a53 <- mlb_review_reasons() #(24×2)
a56 <- mlb_runner_detail_types() #(31×1)
a58 <- mlb_schedule_event_types() #(19×2)
a64 <- mlb_situation_codes() #(64×8)
a65 <- mlb_sky() #天候
a66 <- mlb_sports() #sports_id(15×7) 
a67 <- mlb_sports_info(sport_id = 1#(1×7)

6.3 謎

データの使い道がピンとこない

h <- column_structure_draft_mlb #ドラフト情報の列のみ
a18 <- mlb_fielder_detail_types() #(18×5)
a21 <- mlb_game_context_metrics(game_pk = 531060, 
                                timecode = "20180803_182458"#(1×63)
a42 <- mlb_league_leader_types #(70×1)
a43 <- mlb_logical_events #(73×1)
a47 <- mlb_pitch_codes() #(32×2)

a88 <- most_recent_mlb_season() #最新のシーズンを返す関数
a89 <- most_recent_ncaa_baseball_season()

a92 <- process_statcast_payload(sc2022)

中身も意味不明

a19 <- mlb_game_changes(updated_since = "2021-08-10", sport_id = 1) #(1000×66)

a95 <- statcast_impute
a97 <- stats_api_live_empty_df


いいなと思ったら応援しよう!