Skip to contents

Overview

This vignette will outline how to use the functions in the euroleagueR package to allow users to obtain clean and tidy data for matches played in the Euroleague basketball competition.

Installation

Currently, this library is not yet on CRAN, so you can install the dev version of euroleagueR from GitHub with:

# install.packages("remotes")
remotes::install_github("JaseZiv/euroleagueR")

Usage

The following code will show you how to get various different statistics for the Euroleague.

Match Results

To get results of matches players in the Euroleague tournament since the 2001-2001 season, use the euroleague_results() function.

This data set will also be important to load in together with any of the following data sets to provide match-level metadata (date, venue, scores, phase type, etc)

results <- euroleague_results()
dplyr::glimpse(results)
#> Rows: 5,622
#> Columns: 57
#> $ id                        <chr> "8e007873-46b0-5937-b49c-33920f97e335", "315…
#> $ code                      <chr> "128", "127", "124", "123", "125", "126", "1…
#> $ date                      <chr> "2001-02-01T20:30:00.000Z", "2001-02-01T19:3…
#> $ season_code               <chr> "E2000", "E2000", "E2000", "E2000", "E2000",…
#> $ season_name               <chr> "Euroleague 2000-01", "Euroleague 2000-01", …
#> $ season_alias              <chr> "2000-01", "2000-01", "2000-01", "2000-01", …
#> $ season_year               <chr> "2000", "2000", "2000", "2000", "2000", "200…
#> $ competition_code          <chr> "E", "E", "E", "E", "E", "E", "E", "E", "E",…
#> $ competition_name          <chr> "Euroleague", "Euroleague", "Euroleague", "E…
#> $ group_id                  <chr> "43d18792-9e0d-49b5-8d9f-6b89018ff24c", "fc8…
#> $ group_name                <chr> "Group First Round 8", "Group First Round 7"…
#> $ group_order               <chr> "1", "1", "1", "1", "1", "1", "1", "1", "1",…
#> $ phase_type_code           <chr> "PO", "PO", "PO", "PO", "PO", "PO", "PO", "P…
#> $ phase_type_name           <chr> "Playoffs", "Playoffs", "Playoffs", "Playoff…
#> $ phase_type_alias          <chr> "PLAYOFFS", "PLAYOFFS", "PLAYOFFS", "PLAYOFF…
#> $ phase_type_is_group_phase <chr> "FALSE", "FALSE", "FALSE", "FALSE", "FALSE",…
#> $ round_round               <chr> "11", "11", "11", "11", "11", "11", "11", "1…
#> $ round_name                <chr> "Round 11", "Round 11", "Round 11", "Round 1…
#> $ round_alias               <chr> "Round 11", "Round 11", "Round 11", "Round 1…
#> $ venue_code                <chr> "AAF", "AAD", "AAI", "AAM", "AAK", "AAV", "A…
#> $ venue_name                <chr> "OLYMPIC BASKETBALL STADIUM", "PALAU BLAUGRA…
#> $ venue_capacity            <chr> "18000", "7320", "8120", "8278", "14700", "4…
#> $ venue_address             <chr> "list()", "Aristides Maillol Av S/N, 08028 B…
#> $ venue_notes               <chr> "list()", "", "", "list()", "", "list()", ""…
#> $ confirmed_date            <chr> "TRUE", "TRUE", "TRUE", "TRUE", "TRUE", "TRU…
#> $ confirmed_time            <chr> "TRUE", "TRUE", "TRUE", "TRUE", "TRUE", "TRU…
#> $ audience                  <chr> "1500", "7320", "2000", "5967", "5000", "350…
#> $ audience_confirmed        <chr> "TRUE", "TRUE", "TRUE", "TRUE", "TRUE", "TRU…
#> $ code_home                 <chr> "AEK", "BAR", "PAO", "VIR", "OLY", "PER", "F…
#> $ name_home                 <chr> "AEK Athens", "FC Barcelona", "PAOK Thessalo…
#> $ abbreviated_name_home     <chr> "AEK Athens", "FC Barcelona", "PAOK Thessalo…
#> $ tla_home                  <chr> "AEK", "FCB", "PBC", "VIR", "OLY", "PER", "F…
#> $ score_home                <chr> "69", "85", "75", "113", "94", "79", "76", "…
#> $ standings_score_home      <chr> "69", "85", "75", "113", "94", "79", "76", "…
#> $ coach_code_home           <chr> "WAG", "WAT", "WAS", "WAF", "WAJ", "WAE", "W…
#> $ coach_name_home           <chr> "IVKOVIC, DUSAN", "GARCIA RENESES, AITO", "F…
#> $ q1home                    <chr> "17", "25", "21", "26", "28", "23", "24", "2…
#> $ q2home                    <chr> "12", "25", "19", "39", "20", "22", "13", "1…
#> $ q3home                    <chr> "21", "18", "12", "23", "16", "13", "18", "2…
#> $ q4home                    <chr> "19", "17", "23", "25", "30", "21", "21", "2…
#> $ code_away                 <chr> "ZAL", "TRE", "LJU", "EST", "VER", "BAS", "C…
#> $ name_away                 <chr> "Zalgiris Kaunas", "Benetton Basket", "Union…
#> $ abbreviated_name_away     <chr> "Zalgiris Kaunas", "Benetton Basket", "Union…
#> $ tla_away                  <chr> "ZAL", "TRE", "", "EST", "VER", "BKN", "CIB"…
#> $ score_away                <chr> "60", "86", "64", "70", "92", "81", "64", "6…
#> $ standings_score_away      <chr> "60", "86", "64", "70", "92", "81", "64", "6…
#> $ coach_code_away           <chr> "WAA", "WAK", "WAL", "WAU", "WAP", "WAW", "W…
#> $ coach_name_away           <chr> "BRAZYS, ALGIRDAS", "BUCCHI, PIERO", "SAGADI…
#> $ q1away                    <chr> "14", "21", "17", "22", "21", "26", "20", "1…
#> $ q2away                    <chr> "17", "23", "22", "12", "18", "18", "28", "1…
#> $ q3away                    <chr> "7", "24", "13", "17", "29", "23", "9", "12"…
#> $ q4away                    <chr> "22", "18", "12", "19", "24", "14", "7", "20…
#> $ minute                    <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, …
#> $ ot1home                   <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, …
#> $ ot1away                   <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, …
#> $ ot2home                   <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, …
#> $ ot2away                   <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, …

Joining keys

To be able to join match-level metadata, season_code and code are the two columns needed for joining on to any of the below listed data sets.

Team Box Scores

To get box scores at the team level, use the euroleague_team_box() function. This can return team box score data since the 2010-2011 season, in long form, meaning there will be two rows for each game - one row per team.

Note, not all fields will contain data for earlier seasons.

# the below will get all available match's team box score data
team_box <- euroleague_team_box(season = c(2010:2022))
glimpse(team_box)
#> Rows: 6,740
#> Columns: 30
#> $ season_code            <chr> "E2010", "E2010", "E2010", "E2010", "E2010", "E…
#> $ code                   <chr> "9", "9", "7", "7", "5", "5", "10", "10", "2", …
#> $ team                   <chr> "MONTEPASCHI SIENA", "CHOLET BASKET", "REGAL FC…
#> $ team_abbrv             <chr> "SIE", "CHO", "BAR", "CIB", "MAL", "CHA", "PAM"…
#> $ coach                  <chr> "", "", "", "", "", "", "", "", "", "", "", "",…
#> $ quarter1               <int> 22, 12, 17, 12, 16, 24, 15, 17, 31, 11, 19, 17,…
#> $ quarter2               <int> 11, 16, 18, 8, 26, 20, 12, 25, 26, 21, 24, 12, …
#> $ quarter3               <int> 22, 12, 21, 21, 15, 12, 20, 13, 19, 17, 19, 16,…
#> $ quarter4               <int> 21, 4, 24, 25, 27, 17, 9, 17, 18, 29, 11, 17, 1…
#> $ minutes                <chr> "200:00", "200:00", "200:00", "200:00", "200:00…
#> $ points                 <int> 76, 44, 80, 66, 84, 73, 56, 72, 94, 78, 73, 62,…
#> $ field_goals_made2      <int> 22, 13, 25, 20, 20, 21, 10, 16, 20, 27, 15, 16,…
#> $ field_goals_attempted2 <int> 46, 31, 38, 48, 34, 42, 28, 35, 38, 59, 34, 39,…
#> $ field_goals_made3      <int> 4, 3, 7, 5, 10, 8, 7, 7, 11, 4, 6, 3, 7, 14, 11…
#> $ field_goals_attempted3 <int> 17, 20, 20, 15, 23, 23, 18, 21, 24, 13, 19, 17,…
#> $ free_throws_made       <int> 20, 9, 9, 11, 14, 7, 15, 19, 21, 12, 25, 21, 12…
#> $ free_throws_attempted  <int> 24, 13, 13, 13, 19, 11, 20, 28, 24, 26, 31, 30,…
#> $ offensive_rebounds     <int> 18, 12, 7, 13, 7, 15, 6, 11, 12, 19, 14, 16, 14…
#> $ defensive_rebounds     <int> 25, 17, 25, 20, 23, 23, 26, 24, 29, 18, 22, 18,…
#> $ total_rebounds         <int> 43, 29, 32, 33, 30, 38, 32, 35, 41, 37, 36, 34,…
#> $ assistances            <int> 16, 11, 14, 9, 20, 13, 8, 15, 15, 13, 11, 9, 9,…
#> $ steals                 <int> 10, 6, 11, 13, 7, 9, 1, 13, 2, 9, 10, 13, 0, 8,…
#> $ turnovers              <int> 11, 21, 18, 20, 15, 19, 22, 11, 9, 8, 21, 18, 1…
#> $ blocks_favour          <int> 3, 3, 4, 0, 0, 0, 2, 3, 2, 2, 7, 3, 1, 1, 5, 2,…
#> $ blocks_against         <int> 3, 3, 0, 4, 0, 0, 3, 2, 2, 2, 3, 7, 2, 1, 2, 5,…
#> $ fouls_commited         <int> 18, 21, 17, 16, 15, 24, 23, 20, 23, 23, 29, 32,…
#> $ fouls_received         <int> 21, 18, 16, 17, 24, 15, 20, 23, 23, 23, 32, 29,…
#> $ valuation              <int> 96, 27, 92, 58, 103, 65, 37, 86, 109, 74, 78, 4…
#> $ extra1                 <int> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
#> $ extra2                 <int> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…

Now say we want to be able to join on extra information - say the scores, home and away teams, venue, group name, etc, the below code can be used:

rich_team_box <- results |> 
  select(code, season_code, group_name, phase_type_name, date, code_home, code_away, score_home, score_away, venue_name, coach_name_home, coach_name_away) |> 
  inner_join(team_box, by = c("season_code", "code"), multiple = "all")

Player Box Scores

To get box scores at the player level, use the euroleague_player_box() function. This can return player box score data since the 2010-2011 season. Note, not all fields will contain data for earlier seasons.

player_box <- euroleague_player_box(season = c(2020:2022))
glimpse(player_box)
#> Rows: 22,637
#> Columns: 31
#> $ season_code            <chr> "E2020", "E2020", "E2020", "E2020", "E2020", "E…
#> $ code                   <chr> "9", "9", "9", "9", "9", "9", "9", "9", "9", "9…
#> $ player_team            <chr> "TD SYSTEMS BASKONIA VITORIA-GASTEIZ", "TD SYST…
#> $ player_team_abbrv      <chr> "BAS", "BAS", "BAS", "BAS", "BAS", "BAS", "BAS"…
#> $ player_coach           <chr> "IVANOVIC, DUSKO", "IVANOVIC, DUSKO", "IVANOVIC…
#> $ player_id              <chr> "P008850   ", "P007947   ", "P009733   ", "P006…
#> $ is_starter             <int> 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1,…
#> $ is_playing             <int> 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0,…
#> $ team                   <chr> "BAS", "BAS", "BAS", "BAS", "BAS", "BAS", "BAS"…
#> $ dorsal                 <chr> "2", "3", "5", "7", "8", "12", "19", "25", "30"…
#> $ player                 <chr> "RAIESTE, SANDER", "VILDOZA, LUCA", "JEKIRI, TO…
#> $ minutes                <chr> "10:41", "27:37", "21:23", "33:25", "04:54", "1…
#> $ points                 <int> 0, 12, 1, 23, 0, 5, 1, 18, 0, 12, 4, 0, 0, 5, 3…
#> $ field_goals_made2      <int> 0, 3, 0, 5, 0, 0, 0, 4, 0, 4, 2, 0, 0, 0, 0, 1,…
#> $ field_goals_attempted2 <int> 1, 7, 5, 7, 0, 1, 0, 7, 0, 9, 3, 0, 1, 1, 0, 2,…
#> $ field_goals_made3      <int> 0, 1, 0, 2, 0, 1, 0, 2, 0, 1, 0, 0, 0, 1, 1, 1,…
#> $ field_goals_attempted3 <int> 0, 4, 0, 4, 0, 1, 0, 3, 0, 3, 2, 0, 0, 4, 5, 1,…
#> $ free_throws_made       <int> 0, 3, 1, 7, 0, 2, 1, 4, 0, 1, 0, 0, 0, 2, 0, 0,…
#> $ free_throws_attempted  <int> 0, 4, 2, 8, 0, 2, 2, 4, 0, 1, 0, 0, 0, 2, 0, 0,…
#> $ offensive_rebounds     <int> 1, 0, 0, 0, 0, 1, 0, 2, 0, 3, 1, 0, 0, 1, 0, 0,…
#> $ defensive_rebounds     <int> 2, 1, 4, 2, 0, 1, 1, 4, 0, 2, 8, 0, 0, 3, 1, 2,…
#> $ total_rebounds         <int> 3, 1, 4, 2, 0, 2, 1, 6, 0, 5, 9, 0, 0, 4, 1, 2,…
#> $ assistances            <int> 0, 4, 0, 6, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1,…
#> $ steals                 <int> 0, 1, 0, 2, 0, 0, 0, 0, 0, 3, 2, 0, 0, 2, 0, 0,…
#> $ turnovers              <int> 0, 4, 5, 0, 1, 2, 1, 0, 0, 1, 0, 0, 2, 1, 1, 2,…
#> $ blocks_favour          <int> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0,…
#> $ blocks_against         <int> 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0,…
#> $ fouls_commited         <int> 3, 1, 2, 3, 1, 2, 1, 3, 0, 1, 2, 1, 0, 2, 0, 5,…
#> $ fouls_received         <int> 2, 3, 2, 7, 0, 2, 2, 3, 0, 5, 1, 0, 0, 4, 4, 2,…
#> $ valuation              <int> 1, 8, -7, 32, -2, 3, 1, 21, 0, 15, 15, -1, -3, …
#> $ plusminus              <int> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…

Play-by-Play data

To get play-by-play data, use the euroleague_pbp() function. This can return play-by-play data since the 2010-2011 season. Note, not all fields will contain data for earlier seasons.

pbp <- euroleague_pbp(season = c(2021:2022))
glimpse(pbp)
#> Rows: 324,652
#> Columns: 42
#> $ code         <chr> "9", "9", "9", "9", "9", "9", "9", "9", "9", "9", "9", "9…
#> $ season_code  <chr> "E2021", "E2021", "E2021", "E2021", "E2021", "E2021", "E2…
#> $ team_a       <chr> "FC Barcelona", "FC Barcelona", "FC Barcelona", "FC Barce…
#> $ team_b       <chr> "ALBA Berlin", "ALBA Berlin", "ALBA Berlin", "ALBA Berlin…
#> $ code_team_a  <chr> "BAR       ", "BAR       ", "BAR       ", "BAR       ", "…
#> $ code_team_b  <chr> "BER       ", "BER       ", "BER       ", "BER       ", "…
#> $ num_quarters <int> 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, …
#> $ type         <int> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, …
#> $ numberofplay <int> 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16, 17, 18, 1…
#> $ codeteam     <chr> "          ", "BER       ", "BAR       ", "BER       ", "…
#> $ player_id    <chr> "          ", "P006589   ", "P007870   ", "          ", "…
#> $ playtype     <chr> "BP", "TPOFF", "TPOFF", "JB", "2FGA", "D", "CM", "RV", "F…
#> $ player       <chr> NA, "SIKMA, LUKE", "DAVIES, BRANDON", NA, "SIKMA, LUKE", …
#> $ team         <chr> NA, "ALBA Berlin", "FC Barcelona", "ALBA Berlin", "ALBA B…
#> $ dorsal       <chr> NA, "43", "0", "", "43", "33", "8", "22", "22", "22", "8"…
#> $ minute       <int> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 3, …
#> $ markertime   <chr> "", "09:59", "09:59", "09:59", "09:40", "09:38", "09:29",…
#> $ comment      <chr> "", "", "", "", "", "", "", "", "", "", "", "", "", "", "…
#> $ playinfo     <chr> "Begin Period", "", "", "", "Missed Two Pointer (0/1 -  0…
#> $ points_b     <int> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N…
#> $ points_a     <int> NA, NA, NA, NA, NA, NA, NA, NA, 1, 2, NA, 5, NA, NA, 7, N…
#> $ MatchCode    <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N…
#> $ SeasonCode   <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N…
#> $ TeamA        <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N…
#> $ TeamB        <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N…
#> $ CodeTeamA    <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N…
#> $ CodeTeamB    <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N…
#> $ NumQuarters  <int> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N…
#> $ TYPE         <int> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N…
#> $ NUMBEROFPLAY <int> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N…
#> $ CODETEAM     <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N…
#> $ PLAYER_ID    <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N…
#> $ PLAYTYPE     <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N…
#> $ MINUTE       <int> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N…
#> $ MARKERTIME   <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N…
#> $ COMMENT      <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N…
#> $ PLAYINFO     <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N…
#> $ TEAM         <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N…
#> $ DORSAL       <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N…
#> $ PLAYER       <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N…
#> $ POINTS_B     <int> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N…
#> $ POINTS_A     <int> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N…

Shots data

To get shot location and type data, use the euroleague_shots() function. This can return shooting data since the 2010-2011 season. Note, not all fields will contain data for earlier seasons.

shots <- euroleague_shots(season = 2022)
glimpse(shots)
#> Rows: 49,409
#> Columns: 40
#> $ code                <chr> "9", "9", "9", "9", "9", "9", "9", "9", "9", "9", …
#> $ season_code         <chr> "E2022", "E2022", "E2022", "E2022", "E2022", "E202…
#> $ num_anot            <int> 4, 9, 12, 15, 19, 24, 26, 28, 29, 31, 35, 39, 42, …
#> $ team                <chr> "VIR       ", "MCO       ", "MCO       ", "MCO    …
#> $ id_player           <chr> "P002581   ", "PLCZ      ", "P005985   ", "P009754…
#> $ player              <chr> "JAITEH, MAM", "MOTIEJUNAS, DONATAS", "JAMES, MIKE…
#> $ id_action           <chr> "2FGM", "2FGA", "3FGA", "3FGA", "2FGA", "FTM", "3F…
#> $ action              <chr> "Two Pointer", "Missed Two Pointer", "Missed Three…
#> $ points              <int> 2, 0, 0, 0, 0, 1, 3, 2, 2, 2, 0, 2, 2, 2, 0, 1, 0,…
#> $ coord_x             <int> -100, 50, 62, -595, 56, -1, -608, -37, -175, -150,…
#> $ coord_y             <int> 150, 207, 765, 464, 112, -1, 357, 213, 119, 432, 1…
#> $ zone                <chr> "B", "C", "I", "H", "C", " ", "H", "B", "B", "F", …
#> $ minute              <int> 1, 1, 1, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5,…
#> $ console             <chr> "09:45", "09:27", "09:01", "08:46", "08:27", "08:1…
#> $ points_a            <int> 2, 2, 2, 2, 2, 3, 3, 5, 5, 7, 7, 7, 7, 9, 9, 10, 1…
#> $ points_b            <int> 0, 0, 0, 0, 0, 0, 3, 3, 5, 5, 5, 7, 9, 9, 9, 9, 9,…
#> $ fastbreak           <chr> "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", …
#> $ second_chance       <chr> "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", …
#> $ points_off_turnover <chr> "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", …
#> $ utc                 <chr> "20221007183052", "20221007183139", "2022100718321…
#> $ GAMECODE            <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
#> $ SEASON              <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
#> $ NUM_ANOT            <int> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
#> $ TEAM                <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
#> $ ID_PLAYER           <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
#> $ PLAYER              <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
#> $ ID_ACTION           <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
#> $ ACTION              <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
#> $ POINTS              <int> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
#> $ COORD_X             <int> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
#> $ COORD_Y             <int> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
#> $ ZONE                <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
#> $ FASTBREAK           <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
#> $ SECOND_CHANCE       <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
#> $ POINTS_OFF_TURNOVER <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
#> $ MINUTE              <int> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
#> $ CONSOLE             <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
#> $ POINTS_A            <int> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
#> $ POINTS_B            <int> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
#> $ UTC                 <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…