打ち分ける打者、引っ張る打者、流す打者

はじめに

プロ野球の打撃結果データで遊びます。今回は、打球方向を見てみます。

右方向と左方向で偏りがある打者、偏りが無い打者は誰でしょうか。

2015年の打席結果データを使って頑張ります。

打球方向別に集計

インプレーになった回数が100回以上だった打者を対象とします。

ファースト、セカンド、ライトに捕球されたら右方向。

ピッチャー、センターに捕球されたら中央。

サード、ショート、レフトに捕球されたら左方向とします。

それぞれの方向への打球の比率を計算します。

library(readr)
library(dplyr)
library(xtable)
dat = read_csv("2015年打席結果.csv")

## 補球者のポジションで分けて集計
dat_direc = dat %>% 
  mutate(first = (regexpr("一", 結果)>0)) %>% 
  mutate(second = (regexpr("二", 結果)>0)) %>% 
  mutate(third = (regexpr("三", 結果)>0)) %>% 
  mutate(short = (regexpr("遊", 結果)>0)) %>% 
  mutate(right = (regexpr("右", 結果)>0)) %>% 
  mutate(center = (regexpr("中", 結果)>0)) %>% 
  mutate(left = (regexpr("左", 結果)>0)) %>%
  mutate(pitcher = (regexpr("投", 結果)>0)) %>% 
  mutate(l = (third>0) + (short>0) + (left>0)) %>%  ## 左
  mutate(c = (center>0) + (pitcher>0)) %>% ## 中央
  mutate(r = (first>0) + (second>0) + (right>0)) %>% ## 右
  select(試合ID, チーム, 選手, l, c, r)

## 集計処理
dat_direc_lcr = 
  dat_direc %>% 
  group_by(チーム, 選手) %>% 
  summarise(l = sum(l), c = sum(c), r = sum(r)) %>% 
  group_by(add=FALSE) %>% 
  mutate(s = l + c + r) %>% ## 合計
  filter(s >= 100) %>% 
  mutate(l_rate = l/s, c_rate = c/s, r_rate = r/s) %>% 
  mutate(dif = abs(l_rate - r_rate)) 

## 中身の確認
dat_direc_lcr %>% head %>% xtable(digit = 4) %>% print(type='html')
チーム 選手 l c r s l_rate c_rate r_rate dif
1 DeNA バルディリス 249 81 125 455 0.5473 0.1780 0.2747 0.2725
2 DeNA ロペス 343 79 79 501 0.6846 0.1577 0.1577 0.5269
3 DeNA 乙坂 智 61 30 35 126 0.4841 0.2381 0.2778 0.2063
4 DeNA 梶谷 隆幸 257 87 163 507 0.5069 0.1716 0.3215 0.1854
5 DeNA 関根 大気 65 33 46 144 0.4514 0.2292 0.3194 0.1319
6 DeNA 宮﨑 敏郎 72 36 44 152 0.4737 0.2368 0.2895 0.1842

l, c, rそれぞれレフト、センター、ライトを表しています。

打球方向 偏り打者ランキング

打球方向の左右の偏りが大きい打者のランキングです。

右方向の比率 - 左方向の比率

の絶対値が大きい順に表示します。

dat_direc_lcr %>% 
  select(チーム, 選手, l_rate:dif) %>% 
  arrange(desc(dif)) %>% 
  head(10) %>% 
  xtable(digit = 4) %>% print(type='html')
チーム 選手 l_rate c_rate r_rate dif
1 西武 中村 剛也 0.7162 0.1120 0.1718 0.5444
2 ロッテ 井口 資仁 0.7100 0.1212 0.1688 0.5411
3 DeNA ロペス 0.6846 0.1577 0.1577 0.5269
4 西武 メヒア 0.6823 0.1471 0.1706 0.5117
5 ロッテ デスパイネ 0.6730 0.1635 0.1635 0.5095
6 ソフトバンク 細川 亨 0.6571 0.1905 0.1524 0.5048
7 広島 エルドレッド 0.6642 0.1623 0.1736 0.4906
8 日本ハム 中田 翔 0.6648 0.1585 0.1767 0.4882
9 日本ハム レアード 0.6653 0.1564 0.1782 0.4871
10 中日 福田 永将 0.6829 0.1159 0.2012 0.4817

右打者しかいません。引っ張り専門、ということでしょう。

これらの打者には、守備シフトを引けば対策できるかもしれません。

広角打法ランキング

今度は、打球方向の左右の偏りが小さい打者のランキングです。

dat_direc_lcr %>% 
  select(チーム, 選手, l_rate:dif) %>% 
  arrange(dif) %>% 
  head(10) %>% 
  xtable(digit = 4) %>% print(type='html')
チーム 選手 l_rate c_rate r_rate dif
1 オリックス 平野 恵一 0.4144 0.1712 0.4144 0.0000
2 巨人 堂上 剛裕 0.4135 0.1731 0.4135 0.0000
3 DeNA 黒羽根 利規 0.4077 0.1692 0.4231 0.0154
4 広島 松山 竜平 0.4069 0.1667 0.4265 0.0196
5 オリックス 駿太 0.4194 0.1818 0.3988 0.0205
6 巨人 阿部 慎之助 0.4313 0.1617 0.4070 0.0243
7 ロッテ 岡田 幸文 0.4241 0.1832 0.3927 0.0314
8 楽天 嶋 基宏 0.4348 0.1623 0.4029 0.0319
9 巨人 アンダーソン 0.4417 0.1500 0.4083 0.0333
10 広島 田中 広輔 0.4182 0.2063 0.3755 0.0428

こちらは一転して、左打者が大半です。

...6位に阿部???????

既に守備シフトによって対策されている結果なのかもしれません。

今回は捕球者のポジションで打球方向で判断しています。

実際の打球方向ではないので、守備シフトをされると対応できません。

まとめ

守備シフトの提案ができたらいいですね。

以上です。