Skip to contents

This function allows you to read leaderboard data from BaseballSavant directly into R as data frame.

Usage

statcast_leaderboards(
  leaderboard = "exit_velocity_barrels",
  year = 2018,
  abs = 50,
  min_pa = "q",
  min_pitches = 100,
  min_field = "q",
  min_run = 0,
  player_type = "batter",
  fielding_type = "player",
  oaa_position = "",
  oaa_roles = "",
  team = "",
  arsenal_type = "n_",
  run_type = "raw",
  min2b = 5,
  min3b = 0,
  position = "",
  bats = "",
  hand = ""
)

Arguments

leaderboard

The type of leaderboard to retrieve, input as a string. Current options include exit_velocity_barrels, expected_statistics, pitch_arsenal, outs_above_average, directional_oaa, catch_probability, pop_time, sprint_speed, and running_splits_90_ft.

year

The season for which you want data.

abs

The minimum number of batted balls. Applies only to exit_velocity_barrels leaderboards.

min_pa

Minimum number of plate appearances. Can be a number or 'q' for qualified batters.

min_pitches

Minimum number of pitches thrown.

min_field

Minimum number of fieding opportunities.

min_run

Minimum number of running opportunities.

player_type

One of either 'batter' or pitcher. For the expected_statistics leaderboard, 'batter-team' and 'pitcher-team' are also available.

fielding_type

One of either 'player' or 'team'.

oaa_position

Can be either the number position of a player or 'if' or 'of' for position categories.

oaa_roles

Can be either the number position of a player or 'if' or 'of' for position categories.

team

An abbreviation for a team. Can be left blank.

arsenal_type

One of either 'n_', 'avg_spin', or 'avg_speed'.

run_type

One of either 'percent' or 'raw'.

min2b

The minimum number of throwing attempts to second base.

min3b

The minimum number of throwing attempts to third base.

position

The numeric position of the player. For DH use 10. Can be left blank.

bats

The handedness of the batter. One of 'R' or 'L'. Can be left blank.

hand

The handedness of the pitcher. One of 'R' or 'L'. Can be left blank.

Value

Returns a tibble of Statcast leaderboard data with the following columns (for leaderboard: 'exit_velocity_barrels'):

col_nametypes
yearnumeric
last_namecharacter
first_namecharacter
player_idinteger
attemptsinteger
avg_hit_anglenumeric
anglesweetspotpercentnumeric
max_hit_speednumeric
avg_hit_speednumeric
fbldnumeric
gbnumeric
max_distanceinteger
avg_distanceinteger
avg_hr_distanceinteger
ev95plusinteger
ev95per-swingnumeric
ev95percentnumeric
barrelsinteger
brl_percentnumeric
brl_panumeric

Details

oaa_roles argument: 30 = 1B - Straight Up 31 = 1B - Towards 1B/2B Hole 32 = 1B - Close to Line 40 = 2B - Straight Up 41 = 2B - Shaded Towards 2B Bag 42 = 2B - Towards 1B/2B Hole 43 = 2B - Behind First Basemen 46 = 2B - Up the Middle 60 = SS - Straight Up 61 = SS - Towards 3B/SS Hole 62 = SS - Shaded Towards 2B Bag 64 = SS - Up the Middle 50 = 3B - Straight Up 51 = 3B - Close to Line 52 = 3B - Towards 3B/SS Hole 77 = LF - Close to Line 71 = LF - Leaning Left 70 = LF - Straight Up 72 = LF - Leaning Right 78 = LF - LF Gap 87 = CF - LF Gap 81 = CF - Leaning Left 82 = CF - Leaning Right 89 = CF - RF Gap 98 = RF - RF Gap 91 = RF - Leaning Left 90 = RF - Straight Up 92 = RF - Leaning Right 99 = RF - Close to Line

Examples

# \donttest{
  try(statcast_leaderboards(leaderboard = "exit_velocity_barrels", year = 2018))
#> ── MLB Baseball Savant Statcast Leaderboards data from baseballsavant.ml
#>  Data updated: 2022-04-30 07:17:23 UTC
#> # A tibble: 138 × 20
#>     year last_name first_name player_id attempts avg_hit_angle
#>    <dbl> <chr>     <chr>          <int>    <int>         <dbl>
#>  1  2018 Gallo     Joey          608336      293          21.9
#>  2  2018 Davis     Khris         501981      408          18.1
#>  3  2018 Martinez  J.D.          502110      430          10.8
#>  4  2018 Betts     Mookie        605141      434          18.5
#>  5  2018 Trout     Mike          545361      351          18.6
#>  6  2018 Hernández Teoscar       606192      316          17  
#>  7  2018 Cruz      Nelson        443558      400          12.8
#>  8  2018 Stanton   Giancarlo     519317      416          11.7
#>  9  2018 Yelich    Christian     592885      441           5  
#> 10  2018 Báez      Javier        595879      444           9.6
#> # … with 128 more rows, and 14 more variables:
#> #   anglesweetspotpercent <dbl>, max_hit_speed <dbl>,
#> #   avg_hit_speed <dbl>, fbld <dbl>, gb <dbl>, max_distance <int>,
#> #   avg_distance <int>, avg_hr_distance <int>, ev95plus <int>,
#> #   `ev95per-swing` <dbl>, ev95percent <dbl>, barrels <int>,
#> #   brl_percent <dbl>, brl_pa <dbl>
# }