
ESPN College Football Player Season Statistics (Long Format)
Source:R/espn_cfb_player.R
espn_cfb_player_career_stats.RdGet a single college football player's full season statistics from ESPN – every published stat across every category, in long format (one row per stat).
Usage
espn_cfb_player_career_stats(
athlete_id = NULL,
year = NULL,
season_type = 2,
athlete_detail = TRUE
)Arguments
- athlete_id
(Character/Integer required): ESPN athlete id.
- year
(Integer required): Season, 4 digit format (YYYY).
- season_type
(Integer optional, default 2): ESPN season type.
2= regular season,3= postseason.- athlete_detail
(Logical): when
TRUE(default), fetch the requested athlete's ESPN record once and append theathlete_*name columns (see Details). SetFALSEto skip the fetch, reproducing the prior output exactly.
Value
A data frame with one row per stat:
| col_name | types | description |
| athlete_id | character | ESPN athlete id. |
| season | integer | Season (4-digit year). |
| season_type | integer | ESPN season type (2 = regular, 3 = postseason). |
| category | character | Stat category (e.g. passing, rushing). |
| category_display | character | Human-readable category name. |
| stat_name | character | Internal stat key (e.g. passingYards). |
| display_name | character | Human-readable stat name. |
| abbreviation | character | Stat abbreviation. |
| description | character | ESPN's description of the stat. |
| value | numeric | Season-total value of the stat. |
| display_value | character | Display-formatted season-total value. |
| per_game_value | numeric | Per-game value of the stat. |
| per_game_display_value | character | Display-formatted per-game value. |
| athlete_display_name | character | Player display name; athlete_detail = TRUE only. |
| athlete_first_name | character | Player first name; athlete_detail = TRUE only. |
| athlete_last_name | character | Player last name; athlete_detail = TRUE only. |
| athlete_jersey | character | Player jersey number; athlete_detail = TRUE only. |
| athlete_position | character | Player position name; athlete_detail = TRUE only. |
| athlete_position_abbreviation | character | Player position abbreviation; athlete_detail = TRUE only. |
Details
Wraps the ESPN core-v2 endpoint
sports.core.api.espn.com/v2/sports/football/leagues/college-football/seasons/{year}/types/{season_type}/athletes/{athlete_id}/statistics.
ESPN nests a player's season stats under
splits -> categories[] -> stats[]; this wrapper flattens that tree to
long format – each row is one stat, tagged with its category (e.g.
passing, rushing, defensive). The long shape is deliberate: ESPN
adds and retires stats and whole categories across positions and
seasons, and a long frame absorbs that drift without breaking column
expectations. Pivot wider with tidyr::pivot_wider() keyed on
stat_name for a wide table. Each stat carries both a season-total
value (value) and a per-game value (per_game_value).
When athlete_detail = TRUE (the default) the requested athlete's ESPN
record is fetched once and the human-readable name columns
athlete_display_name, athlete_first_name, athlete_last_name,
athlete_jersey, athlete_position, and athlete_position_abbreviation
are appended to every row. This is a single cheap fetch – the wrapper
already takes one athlete_id. A fetch failure degrades the name columns
to NA rather than erroring the wrapper. Set athlete_detail = FALSE to
skip the fetch and reproduce the prior output exactly.
See also
Other ESPN CFB Functions:
espn_cfb_award(),
espn_cfb_awards(),
espn_cfb_clear_cache(),
espn_cfb_coach(),
espn_cfb_coach_record(),
espn_cfb_coaches(),
espn_cfb_franchise(),
espn_cfb_franchises(),
espn_cfb_futures(),
espn_cfb_game_broadcasts(),
espn_cfb_game_drive_plays(),
espn_cfb_game_drives(),
espn_cfb_game_leaders(),
espn_cfb_game_odds(),
espn_cfb_game_pbp(),
espn_cfb_game_play(),
espn_cfb_game_player_box(),
espn_cfb_game_player_statistics(),
espn_cfb_game_powerindex(),
espn_cfb_game_predictor(),
espn_cfb_game_probabilities(),
espn_cfb_game_situation(),
espn_cfb_game_status(),
espn_cfb_game_team_leaders(),
espn_cfb_game_team_linescores(),
espn_cfb_game_team_records(),
espn_cfb_game_team_roster(),
espn_cfb_game_team_statistics(),
espn_cfb_game_teams(),
espn_cfb_groups(),
espn_cfb_pbp_v2(),
espn_cfb_player(),
espn_cfb_player_eventlog(),
espn_cfb_player_gamelog(),
espn_cfb_player_overview(),
espn_cfb_player_seasons(),
espn_cfb_player_splits(),
espn_cfb_player_stats_v3(),
espn_cfb_players(),
espn_cfb_position(),
espn_cfb_positions(),
espn_cfb_powerindex(),
espn_cfb_qbr(),
espn_cfb_rankings(),
espn_cfb_recruits(),
espn_cfb_season_info(),
espn_cfb_season_types(),
espn_cfb_season_weeks(),
espn_cfb_seasons(),
espn_cfb_standings(),
espn_cfb_team(),
espn_cfb_team_ats(),
espn_cfb_team_awards(),
espn_cfb_team_coaches(),
espn_cfb_team_events(),
espn_cfb_team_leaders(),
espn_cfb_team_powerindex(),
espn_cfb_team_ranks(),
espn_cfb_team_record(),
espn_cfb_team_roster(),
espn_cfb_team_schedule(),
espn_cfb_teams(),
espn_cfb_unnest_plays(),
espn_cfb_venue(),
espn_cfb_venues(),
espn_cfb_week_rankings()
Examples
# \donttest{
try(espn_cfb_player_career_stats(athlete_id = 102597, year = 2024))
#> ── Player season statistics from ESPN ──────────────────────── cfbfastR 2.3.0 ──
#> ℹ Data updated: 2026-06-09 07:56:47 UTC
#> # A tibble: 157 × 19
#> athlete_id season season_type category category_display stat_name
#> <chr> <int> <int> <chr> <chr> <chr>
#> 1 102597 2024 2 general General fumbles
#> 2 102597 2024 2 general General fumblesLost
#> 3 102597 2024 2 general General fumblesForced
#> 4 102597 2024 2 general General fumblesForcedPrimary
#> 5 102597 2024 2 general General fumblesRecovered
#> 6 102597 2024 2 general General fumblesRecoveredYards
#> 7 102597 2024 2 general General fumblesTouchdowns
#> 8 102597 2024 2 general General gamesPlayed
#> 9 102597 2024 2 general General offensiveTwoPtReturns
#> 10 102597 2024 2 general General offensiveFumblesTouc…
#> # ℹ 147 more rows
#> # ℹ 13 more variables: display_name <chr>, abbreviation <chr>,
#> # description <chr>, value <dbl>, display_value <chr>, per_game_value <dbl>,
#> # per_game_display_value <chr>, athlete_display_name <chr>,
#> # athlete_first_name <chr>, athlete_last_name <chr>, athlete_jersey <chr>,
#> # athlete_position <chr>, athlete_position_abbreviation <chr>
try(espn_cfb_player_career_stats(athlete_id = 102597, year = 2024,
athlete_detail = FALSE))
#> ── Player season statistics from ESPN ──────────────────────── cfbfastR 2.3.0 ──
#> ℹ Data updated: 2026-06-09 07:56:47 UTC
#> # A tibble: 157 × 13
#> athlete_id season season_type category category_display stat_name
#> <chr> <int> <int> <chr> <chr> <chr>
#> 1 102597 2024 2 general General fumbles
#> 2 102597 2024 2 general General fumblesLost
#> 3 102597 2024 2 general General fumblesForced
#> 4 102597 2024 2 general General fumblesForcedPrimary
#> 5 102597 2024 2 general General fumblesRecovered
#> 6 102597 2024 2 general General fumblesRecoveredYards
#> 7 102597 2024 2 general General fumblesTouchdowns
#> 8 102597 2024 2 general General gamesPlayed
#> 9 102597 2024 2 general General offensiveTwoPtReturns
#> 10 102597 2024 2 general General offensiveFumblesTouc…
#> # ℹ 147 more rows
#> # ℹ 7 more variables: display_name <chr>, abbreviation <chr>,
#> # description <chr>, value <dbl>, display_value <chr>, per_game_value <dbl>,
#> # per_game_display_value <chr>
# }