How o!en do ba"ers make contact on various pitches?
●
How does location impact contact rate?
●
Most effective two-strike pitches?
●
How can we visualize how ba"ers swing?
Exploring Pitch Data in R
Pitch outcomes: Contact rate ●
Contact rate: percentage of swings by ba"er that do not miss
●
Whiff rate: percentage of swings by ba"er that miss
Exploring Pitch Data in R
The pitch_result variable > levels(greinke_sub$pitch_result) [1] "Ball" "Ball In Dirt" [3] "Called Strike" "Foul" [5] "Foul (Runner Going)" "Foul Bunt" [7] "Foul Tip" "Hit By Pitch" [9] "In play, no out" "In play, out(s)" [11] "In play, run(s)" "Missed Bunt" [13] "Swinging Strike" "Swinging Strike (Blocked)” > head(greinke_sub$pitch_result) [1] Ball Swinging Strike [4] Swinging Strike Swinging Strike
Called Strike Swinging Strike
Exploring Pitch Data in R
Ba!ed balls > head(play_out[, 5:9]) pitch_result atbat_result start_speed z0 x0 13 In play, out(s) Pop Out 87.1 6.224 -0.904 14 In play, out(s) Sac Bunt 90.0 5.987 -1.185 42 In play, out(s) Groundout 85.5 6.132 -1.013 45 In play, out(s) Groundout 91.7 6.053 -1.112 52 In play, out(s) Forceout 86.4 6.463 -0.613 64 In play, out(s) Groundout 94.2 6.124 -0.736 > head(play_no_out[, 5:9]) pitch_result atbat_result start_speed z0 x0 43 In play, no out Single 87.4 6.213 -1.060 65 In play, no out Single 91.7 6.387 -0.838 155 In play, no out Double 77.4 6.519 -0.924 156 In play, no out Single 90.9 5.949 -0.989 157 In play, no out Single 93.0 6.178 -0.709 199 In play, no out Single 85.4 6.435 -1.061
EXPLORING PITCH DATA IN R
Let's practice!
EXPLORING PITCH DATA IN R
Using ggplot2
Exploring Pitch Data in R
Wide and long format > head(wide) Multiple measurements per row zone px pz exit_speed_rhb exit_speed_lhb 1 1 -1.5 4.5 NA NA 2 2 -0.5 4.5 NA 72.0 3 3 0.5 4.5 92.0 NA 4 4 1.5 4.5 NA NA 5 5 -1.5 3.5 60.5 91.0 6 6 -0.5 3.5 88.0 91.0 > long[15:20, ] One measurement per row zone px pz batter_stand exit_speed 15 15 0.5 1.5 RHB 89.8 16 16 1.5 1.5 RHB 84.2 17 17 -1.5 0.5 RHB NA 18 18 -0.5 0.5 RHB 89.0 19 19 0.5 0.5 RHB 84.6 20 20 1.5 0.5 RHB 91.1
Pitch outcomes: Exit velocity > head(swings$batted_ball_velocity) [1] 104 NA NA NA NA NA > sort(tapply(swings$batted_ball_velocity, swings$atbat_result, mean)) Fielders Choice Out Fan interference Fielders Choice 61.00000 65.00000 65.00000 Double Play Sac Fly Double 81.00000 93.00000 96.53488 Triple Home Run 100.50000 104.07143