# Post-season batting data
# Requires care since intra-league playoffs have evolved since 1969
# Simplest case: World Series
require(plyr)
# Create a sub-data frame for modern World Series play
ws <- subset(BattingPost, round == "WS" & yearID >= 1903)
# Add some derived measures
ws <- mutate(ws, BA = ifelse(AB == 0, 0, round(H/AB, 3)),
TB = H + X2B + 2 * X3B + 3 * HR,
SA = ifelse(AB == 0, 0, round(TB/AB, 3)),
PA = AB + BB + IBB + HBP + SH + SF,
OB = H + BB + IBB + HBP,
OBP = ifelse(AB == 0, 0, round(OB/PA, 3)) )
# Players with most appearances in the WS:
with(subset(BattingPost, round == "WS"), rev(sort(table(playerID))))[1:10]
# OK, how about someone who is *not* a Yankee?
with(subset(BattingPost, round == "WS" & teamID != "NYA"),
rev(sort(table(playerID))))[1:10]
# Top ten single WS batting averages ( >= 10 AB )
head(arrange(subset(ws, AB > 10), desc(BA)), 10)
# Top ten slugging averages in a single WS
head(arrange(subset(ws, AB > 10), desc(SA)), 10)
# Hitting stats for the 1946 St. Louis Cardinals, ordered by BA
arrange(subset(ws, teamID == "SLN" & yearID == 1946), desc(BA))
# Babe Ruth's WS profile
subset(ws, playerID == "ruthba01")
Run the code above in your browser using DataLab