プロ野球 年齢別最多安打

はじめに

日本プロ野球シーズン成績データを作ったので遊びます。

年齢別に通算最多安打ランキングを作ってみます。

22歳までの成績で最多安打、みたいなことがしたいです。

年齢別に最多安打を計算

library(readr)
library(dplyr)
library(xtable)
dat = read_csv("npbBattingData.csv")
## Warning: 50315 problems parsing 'npbBattingData.csv'. See problems(...) for
## more details.
dat_MaxCumulativeHit = 
  dat %>% 
  select(Name, PlayerID, Age, H) %>%
  group_by(Name, PlayerID) %>%
  arrange(Age) %>% 
  mutate(CumulativeHit = cumsum(H)) %>% 
  group_by(Age) %>% 
  summarise(CumulativeHit = max(CumulativeHit))
dat %>% 
  select(Name, PlayerID, Age, H) %>%
  group_by(Name, PlayerID) %>%
  arrange(Age) %>% 
  mutate(CumulativeHit = cumsum(H)) %>% 
  inner_join(dat_MaxCumulativeHit, by = c("CumulativeHit", "Age")) %>% 
  group_by(add=FALSE) %>%
  arrange(Age) %>% 
  filter(Age <= 41) %>%
  xtable() %>% print(type='html')
Name PlayerID Age H CumulativeHit
1 Masaichi Kaneda* kaneda002mas 16 13 13
2 Masaichi Kaneda* kaneda002mas 17 21 34
3 Kihachi Enomoto* enomot000kih 18 146 146
4 Kihachi Enomoto* enomot000kih 19 148 294
5 Masahiro Doi doi---002mas 20 168 434
6 Masahiro Doi doi---002mas 21 135 569
7 Masahiro Doi doi---002mas 22 129 698
8 Masahiro Doi doi---002mas 23 147 845
9 Kihachi Enomoto* enomot000kih 24 180 1013
10 Kihachi Enomoto* enomot000kih 25 160 1173
11 Kihachi Enomoto* enomot000kih 26 169 1342
12 Kihachi Enomoto* enomot000kih 27 161 1503
13 Kihachi Enomoto* enomot000kih 28 132 1635
14 Kihachi Enomoto* enomot000kih 29 167 1802
15 Kihachi Enomoto* enomot000kih 30 108 1910
16 Kihachi Enomoto* enomot000kih 31 149 2059
17 Kihachi Enomoto* enomot000kih 32 109 2168
18 Kihachi Enomoto* enomot000kih 33 86 2254
19 Isao Harimoto* harimo000isa 34 138 2322
20 Isao Harimoto* harimo000isa 35 113 2435
21 Isao Harimoto* harimo000isa 36 182 2617
22 Isao Harimoto* harimo000isa 37 153 2770
23 Isao Harimoto* harimo000isa 38 131 2901
24 Isao Harimoto* harimo000isa 39 60 2961
25 Isao Harimoto* harimo000isa 40 89 3050
26 Isao Harimoto* harimo000isa 41 35 3085

土井正博、榎本喜八、張本勲です。安打製造機たちです。

通算安打数グラフ

張本勲、榎本喜八、土井正博の通算安打数推移を可視化します。

ついでにイチローも足しておきます。

library(ggplot2)
dat %>% 
  filter(PlayerID %in%c("suzuki001ich", "enomot000kih", "harimo000isa", "doi---002mas")) %>%
  select(Name, PlayerID, Age, H) %>%
  group_by(Name, PlayerID) %>%
  arrange(Age) %>% 
  mutate(CumulativeHit = cumsum(H)) %>%
  ggplot(aes(x=Age)) + 
  geom_line(aes(x=Age, y=CumulativeHit, group = Name, color=Name)) + 
  ggtitle("Cumulative Hit")

plot of chunk unnamed-chunk-3