PitchingPost table
PitchingPost.Rd
Post season pitching statistics
Usage
data(PitchingPost)
Format
A data frame with 6757 observations on the following 30 variables.
playerID
Player ID code
yearID
Year
round
Level of playoffs
teamID
Team; a factor
lgID
League; a factor with levels
AA
AL
NL
W
Wins
L
Losses
G
Games
GS
Games Started
CG
Complete Games
SHO
Shutouts
SV
Saves
IPouts
Outs Pitched (innings pitched x 3)
H
Hits
ER
Earned Runs
HR
Homeruns
BB
Walks
SO
Strikeouts
BAOpp
Opponents' batting average
ERA
Earned Run Average
IBB
Intentional Walks
WP
Wild Pitches
HBP
Batters Hit By Pitch
BK
Balks
BFP
Batters faced by Pitcher
GF
Games Finished
R
Runs Allowed
SH
Sacrifice Hits allowed
SF
Sacrifice Flies allowed
GIDP
Grounded into Double Plays
Source
Lahman, S. (2024) Lahman's Baseball Database, 1871-2023, 2024 version, http://www.seanlahman.com/
Examples
library("dplyr")
library(ggplot2)
# Restrict data to World Series in modern era
ws <- PitchingPost %>%
filter(yearID >= 1903 & round == "WS")
# Pitchers with ERA 0.00 in WS play (> 10 IP)
ws %>%
filter(IPouts > 30 & ERA == 0.00) %>%
arrange(desc(IPouts)) %>%
select(playerID, yearID, teamID, lgID, IPouts, W, L, G,
CG, SHO, H, R, SO, BFP)
#> playerID yearID teamID lgID IPouts W L G CG SHO H R SO BFP
#> 1 hoytwa01 1921 NYA AL 81 2 1 3 3 1 18 2 18 106
#> 2 mathech01 1905 NY1 NL 81 3 0 3 3 3 13 0 18 94
#> 3 hubbeca01 1933 NY1 NL 60 2 0 2 2 0 13 3 15 80
#> 4 fordwh01 1960 NYA AL 54 2 0 2 2 2 11 0 8 65
#> 5 mcginjo01 1905 NY1 NL 51 1 1 2 1 1 10 3 6 65
#> 6 mailsdu01 1920 CLE AL 47 1 0 2 1 1 6 0 6 58
#> 7 bentoru01 1917 NY1 NL 42 1 1 2 1 1 9 3 8 53
#> 8 fordwh01 1961 NYA AL 42 2 0 2 1 1 6 0 7 49
#> 9 billija01 1972 CIN NL 41 1 0 3 0 0 6 1 11 50
#> 10 dobsojo01 1946 BOS AL 38 1 0 3 1 0 4 3 10 48
#> 11 reynoal01 1949 NYA AL 37 1 0 2 1 1 2 0 14 43
#> 12 labincl01 1956 BRO NL 36 1 0 2 1 1 8 1 7 47
#> 13 brownmo01 1908 CHN NL 33 2 0 2 1 1 6 1 5 40
#> 14 jamesbi02 1914 BSN NL 33 2 0 2 1 1 2 0 9 37
#> 15 krameja01 1944 SLA AL 33 1 0 2 1 0 9 2 12 46
#> 16 beardge01 1948 CLE AL 32 1 0 2 1 1 6 0 4 36
#> 17 larsedo01 1956 NYA AL 32 1 0 2 1 1 1 4 7 37
# Pitchers with the most IP in a series
# 1903 Series went eight games - for details, see
# https://en.wikipedia.org/wiki/1903_World_Series
ws %>%
arrange(desc(IPouts)) %>%
select(playerID, yearID, teamID, lgID, IPouts, W, L, G,
CG, SHO, H, SO, BFP, ERA) %>%
head(., 10)
#> playerID yearID teamID lgID IPouts W L G CG SHO H SO BFP ERA
#> 1 phillde01 1903 PIT NL 132 3 2 5 5 0 38 22 178 3.07
#> 2 dinnebi01 1903 BOS AL 105 3 1 4 4 2 29 28 134 2.06
#> 3 youngcy01 1903 BOS AL 102 2 1 4 3 0 31 17 142 1.85
#> 4 mullige01 1909 DET AL 96 2 1 4 3 1 23 20 132 2.25
#> 5 mathech01 1912 NY1 NL 86 0 2 3 3 0 23 10 115 0.94
#> 6 spahnwa01 1958 ML1 NL 86 2 1 3 2 1 19 18 113 2.20
#> 7 adamsba01 1909 PIT NL 81 3 0 3 3 1 18 11 106 1.33
#> 8 burdele01 1957 ML1 NL 81 3 0 3 3 2 21 13 104 0.67
#> 9 coombja01 1910 PHA AL 81 3 0 3 3 0 24 17 116 3.33
#> 10 covelst01 1920 CLE AL 81 3 0 3 3 1 15 8 97 0.67
# Pitchers with highest strikeout rate in WS
# (minimum 20 IP)
ws %>%
filter(IPouts >= 60) %>%
mutate(K_rate = 27 * SO/IPouts) %>%
arrange(desc(K_rate)) %>%
select(playerID, yearID, teamID, lgID, IPouts,
H, SO, K_rate) %>%
head(., 10)
#> playerID yearID teamID lgID IPouts H SO K_rate
#> 1 gibsobo01 1968 SLN NL 81 18 35 11.666667
#> 2 schilcu01 2001 ARI NL 64 12 26 10.968750
#> 3 koufasa01 1965 LAN NL 72 13 29 10.875000
#> 4 gibsobo01 1964 SLN NL 81 23 31 10.333333
#> 5 newhoha01 1945 DET AL 62 25 22 9.580645
#> 6 gibsobo01 1967 SLN NL 81 14 26 8.666667
#> 7 woodjo02 1912 BOS AL 66 27 21 8.590909
#> 8 reynoal01 1952 NYA AL 61 12 18 7.967213
#> 9 alexape01 1926 SLN NL 61 12 17 7.524590
#> 10 earnsge01 1931 PHA AL 72 12 20 7.500000
# Pitchers with the most IP in WS history
ws %>%
group_by(playerID) %>%
summarise_at(vars(IPouts, H, ER, CG, BB, SO, W, L),
sum, na.rm = TRUE) %>%
mutate(ERA = round(27 * ER/IPouts, 2),
Kper9 = round(27 * SO/IPouts, 3),
WHIP = round(3 * (H + BB)/IPouts, 3)) %>%
arrange(desc(IPouts)) %>%
select(-H, -ER) %>%
head(., 10)
#> # A tibble: 10 × 10
#> playerID IPouts CG BB SO W L ERA Kper9 WHIP
#> <chr> <int> <int> <int> <int> <int> <int> <dbl> <dbl> <dbl>
#> 1 fordwh01 438 7 34 94 10 8 2.71 5.80 1.14
#> 2 mathech01 305 10 10 48 5 5 0.97 4.25 0.836
#> 3 ruffire01 257 8 27 61 7 2 2.63 6.41 1.18
#> 4 bendech01 255 9 21 59 6 4 2.44 6.25 1.01
#> 5 hoytwa01 251 6 22 49 6 4 1.83 5.27 1.23
#> 6 gibsobo01 243 8 17 92 7 2 1.89 10.2 0.889
#> 7 nehfar01 237 6 32 28 4 4 2.16 3.19 1.04
#> 8 pettian01 233 0 26 56 5 4 4.06 6.49 1.40
#> 9 reynoal01 232 5 32 62 7 2 2.79 7.22 1.20
#> 10 palmeji01 194 1 31 44 4 2 3.2 6.12 1.33
# Plot of K/9 by year
ws %>%
group_by(yearID) %>%
summarise(Kper9 = 27 * sum(SO)/sum(IPouts)) %>%
ggplot(., aes(x = yearID, y = Kper9)) +
geom_point() +
geom_smooth() +
labs(x = "Year", y = "K per 9 innings")
#> `geom_smooth()` using method = 'loess' and formula = 'y ~ x'