rvolleydataThis vignette will outline how to use the functions in the
rvolleydata package to access data from League One Volleyball Pro
(LOVB), Athletes
Unlimited Pro Volleyball (AU), and Major League Volleyball (MLV)
leagues.
You can install the development version of rvolleydata
from GitHub
with:
The following code snippets will provide information on how to access different volleyball league statistics. Each function has an identical signature where the user specifies their league of interest and the season(s).
Use load_schedule to access league schedules.
schedule <- load_schedule("au", 2025)
glimpse(schedule)
#> Rows: 31
#> Columns: 10
#> $ season <dbl> 2025, 2025, 2025, 2025, 2025, 2025, 2025, 2025, 202…
#> $ date <date> 2025-09-29, 2025-09-29, 2025-09-29, 2025-09-29, 20…
#> $ home_team <chr> "Team Bergmark", "Team Bergmark", "Team Bell", "Tea…
#> $ away_team <chr> "Team Zilio Pereira", "Team Zilio Pereira", "Team H…
#> $ home_team_set_wins <dbl> 2, 0, 1, 0, 2, 1, 2, 0, 3, 1, 2, 2, 2, 1, 2, 3, 1, …
#> $ away_team_set_wins <dbl> 1, 0, 2, 0, 1, 2, 1, 3, 0, 2, 1, 1, 1, 2, 1, 0, 2, …
#> $ result <chr> "2:1", "0:0", "1:2", "0:0", "2:1", "1:2", "2:1", "0…
#> $ match_id <dbl> 2249762, 2249974, 2249761, 2249973, 2249760, 224975…
#> $ phase <chr> "AU Test 2025", "AU Test 2025", "AU Test 2025", "AU…
#> $ league <chr> "au", "au", "au", "au", "au", "au", "au", "au", "au…Use load_pbp to access play-by-play data.
pbp <- load_pbp("lovb", 2025)
glimpse(pbp)
#> Rows: 73,416
#> Columns: 15
#> $ match_id <dbl> 2161068, 2161068, 2161068, 2161068, 2161068, 2161068, 2…
#> $ season <dbl> 2025, 2025, 2025, 2025, 2025, 2025, 2025, 2025, 2025, 2…
#> $ match_datetime <dttm> 2025-01-09 00:30:00, 2025-01-09 00:30:00, 2025-01-09 0…
#> $ home_team_name <chr> "LOVB Atlanta", "LOVB Atlanta", "LOVB Atlanta", "LOVB A…
#> $ away_team_name <chr> "LOVB Salt Lake", "LOVB Salt Lake", "LOVB Salt Lake", "…
#> $ team_involved <chr> "home", "away", "away", "away", "home", "home", "away",…
#> $ jersey_number <dbl> 10, 17, 1, 11, 23, 77, 12, 10, 12, 1, 12, 1, 16, 10, 15…
#> $ action <chr> "S", "R", "E", "A", "D", "E", "A", "S", "R", "E", "A", …
#> $ outcome <chr> "-", "#", "+", "-", "#", "/", "=", "-", "+", "#", "#", …
#> $ set <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1…
#> $ point_number <dbl> 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 3, 4, 4, 4…
#> $ point_winner <chr> "home", "home", "home", "home", "home", "home", "home",…
#> $ home_score <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2…
#> $ away_score <dbl> 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2…
#> $ league <chr> "lovb", "lovb", "lovb", "lovb", "lovb", "lovb", "lovb",…Use load_officials to access officials data.
officials <- load_officials("mlv", 2025)
glimpse(officials)
#> Rows: 368
#> Columns: 9
#> $ match_id <dbl> 2160917, 2160917, 2160917, 2160917, 2160918, 2160918, 2…
#> $ season <dbl> 2025, 2025, 2025, 2025, 2025, 2025, 2025, 2025, 2025, 2…
#> $ match_datetime <dttm> 2025-01-11 01:00:00, 2025-01-11 01:00:00, 2025-01-11 0…
#> $ officials_type <chr> "referee1", "referee2", "scorer1", "scorer2", "referee1…
#> $ full_name <chr> "Bill Stanley", "Suzanne Lowry", "Nicole Conway", "Kaci…
#> $ first_name <chr> "Bill", "Suzanne", "Nicole", "Kacie", "LANDRY", "DEVONI…
#> $ last_name <chr> "Stanley", "Lowry", "Conway", "Hoppe", "HOMSHER", "MCLA…
#> $ level <chr> "AAA", "AAA", "A", "A", "USA", "USA", "USA", "USA", "PV…
#> $ league <chr> "mlv", "mlv", "mlv", "mlv", "mlv", "mlv", "mlv", "mlv",…Use load_player_info to access player information.
player_info <- load_player_info("au", 2025)
glimpse(player_info)
#> Rows: 682
#> Columns: 29
#> $ match_id <dbl> 2249759, 2249759, 2249759, 2249759, 2249759, 2…
#> $ season <dbl> 2025, 2025, 2025, 2025, 2025, 2025, 2025, 2025…
#> $ match_datetime <dttm> 2025-09-28 21:00:00, 2025-09-28 21:00:00, 202…
#> $ player_id <dbl> 1127, 997, 1117, 993, 1124, 986, 996, 1196, 76…
#> $ player_name <chr> "Guedpard Pornpun", "Emily Thater", "Serena Gr…
#> $ first_name <chr> "Guedpard", "Emily", "Serena", "Manami", "Tess…
#> $ last_name <chr> "Pornpun", "Thater", "Gray", "Kojima", "Grubbs…
#> $ jersey_number <dbl> 3, 14, 15, 16, 17, 18, 19, 30, 31, 42, 81, 2, …
#> $ primary_position <dbl> 5, 4, 4, 1, 3, 3, 2, 2, 5, 4, 2, 5, 4, 2, 5, 2…
#> $ roster_status <chr> "active", "active", "active", "active", "activ…
#> $ is_foreign <lgl> FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALS…
#> $ is_confederation <lgl> FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALS…
#> $ is_captain <lgl> FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, FALSE…
#> $ is_libero <lgl> FALSE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE…
#> $ set_1_is_starter <lgl> TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, TRUE, FA…
#> $ set_1_starting_position <dbl> 1, 6, 3, NA, NA, 4, 5, NA, NA, NA, 2, 1, 6, NA…
#> $ set_2_is_starter <lgl> TRUE, TRUE, FALSE, FALSE, FALSE, TRUE, FALSE, …
#> $ set_2_starting_position <dbl> 1, 6, NA, NA, NA, 4, NA, 5, NA, 3, 2, NA, 4, 6…
#> $ set_3_is_starter <lgl> FALSE, FALSE, TRUE, FALSE, TRUE, FALSE, TRUE, …
#> $ set_3_starting_position <dbl> NA, NA, 6, NA, 4, NA, 5, 2, 1, 3, NA, NA, NA, …
#> $ set_4_is_starter <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
#> $ set_4_starting_position <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
#> $ set_5_is_starter <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
#> $ set_5_starting_position <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
#> $ team_name <chr> "Team Bell", "Team Bell", "Team Bell", "Team B…
#> $ team_short_name <chr> "ORA", "ORA", "ORA", "ORA", "ORA", "ORA", "ORA…
#> $ team_code <chr> "602", "602", "602", "602", "602", "602", "602…
#> $ team_color <chr> "cadmiumOrange", "cadmiumOrange", "cadmiumOran…
#> $ league <chr> "au", "au", "au", "au", "au", "au", "au", "au"…Use load_team_staff to access team staff data.
team_staff <- load_team_staff("lovb", 2025)
glimpse(team_staff)
#> Rows: 242
#> Columns: 9
#> $ match_id <dbl> 2161068, 2161068, 2161068, 2161068, 2161068, 2161068, 2…
#> $ season <dbl> 2025, 2025, 2025, 2025, 2025, 2025, 2025, 2025, 2025, 2…
#> $ match_datetime <dttm> 2025-01-09 00:30:00, 2025-01-09 00:30:00, 2025-01-09 0…
#> $ team_name <chr> "LOVB Atlanta", "LOVB Atlanta", "LOVB Atlanta", "LOVB S…
#> $ staff_type <chr> "coach", "assistant", "assistant", "coach", "assistant"…
#> $ full_name <chr> "Paulo Coco", "Yoko Zetterlund", "Angela Gonzalez", "Ta…
#> $ first_name <chr> "Paulo", "Yoko", "Angela", "Tama", "Bruno", "Kolin", "M…
#> $ last_name <chr> "Coco", "Zetterlund", "Gonzalez", "Miyashiro", "Chateau…
#> $ league <chr> "lovb", "lovb", "lovb", "lovb", "lovb", "lovb", "lovb",…Use load_events_log to access events log data.
events_log <- load_events_log("mlv", 2025)
glimpse(events_log)
#> Rows: 36,784
#> Columns: 52
#> $ match_id <dbl> 2160916, 2160916, 2160916, 2160916, 21…
#> $ season <dbl> 2025, 2025, 2025, 2025, 2025, 2025, 20…
#> $ match_datetime <dttm> 2025-01-10, 2025-01-10, 2025-01-10, 2…
#> $ set <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,…
#> $ set_start_time <dttm> 2025-01-09 23:49:00, 2025-01-09 23:49…
#> $ set_end_time <dttm> 2025-01-10 00:29:00, 2025-01-10 00:29…
#> $ set_duration <dbl> 39, 39, 39, 39, 39, 39, 39, 39, 39, 39…
#> $ set_final_home_score <dbl> 25, 25, 25, 25, 25, 25, 25, 25, 25, 25…
#> $ set_final_away_score <dbl> 18, 18, 18, 18, 18, 18, 18, 18, 18, 18…
#> $ event_type <chr> "libero", "libero", "rally", "libero",…
#> $ event_time <dttm> 2025-01-10 00:04:42, 2025-01-10 00:04…
#> $ libero_enters <lgl> TRUE, TRUE, NA, FALSE, NA, FALSE, TRUE…
#> $ team_involved <chr> "home", "away", NA, "away", NA, "home"…
#> $ libero_jersey_number <dbl> 5, 2, NA, 2, NA, 5, 2, NA, 5, NA, NA, …
#> $ libero_substitute_jersey_number <dbl> 11, 7, NA, 7, NA, 11, 26, NA, 15, NA, …
#> $ rally_start_time <dttm> NA, NA, 2025-01-10 00:05:12, NA, 2025…
#> $ rally_end_time <dttm> NA, NA, 2025-01-10 00:05:26, NA, 2025…
#> $ rally_point_winner <chr> NA, NA, "away", NA, "home", NA, NA, "a…
#> $ substitute_in_jersey_number <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
#> $ substitute_out_jersey_number <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
#> $ challenge_approved <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
#> $ challenge_reason <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
#> $ challenge_method <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
#> $ challenge_response <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
#> $ challenge_at_home_score <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
#> $ challenge_at_away_score <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
#> $ challenge_score_change <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
#> $ serving_team <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
#> $ current_home_score <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
#> $ current_away_score <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
#> $ home_team_p1 <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
#> $ home_team_p2 <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
#> $ home_team_p3 <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
#> $ home_team_p4 <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
#> $ home_team_p5 <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
#> $ home_team_p6 <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
#> $ away_team_p1 <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
#> $ away_team_p2 <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
#> $ away_team_p3 <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
#> $ away_team_p4 <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
#> $ away_team_p5 <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
#> $ away_team_p6 <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
#> $ verified_time <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
#> $ verified_method <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
#> $ sanction_type <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
#> $ sanction_remark <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
#> $ sanction_staff_role <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
#> $ staff_first_name <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
#> $ staff_last_name <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
#> $ staff_type <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
#> $ is_exceptional <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
#> $ league <chr> "mlv", "mlv", "mlv", "mlv", "mlv", "ml…Use load_player_boxscore to access player boxscore
data.
player_boxscores <- load_player_boxscore("au", 2025)
glimpse(player_boxscores)
#> Rows: 1,563
#> Columns: 37
#> $ match_id <dbl> 2249759, 2249759, 2249759, 2249759, 2249759, …
#> $ season <dbl> 2025, 2025, 2025, 2025, 2025, 2025, 2025, 202…
#> $ match_datetime <dttm> 2025-09-28 21:00:00, 2025-09-28 21:00:00, 20…
#> $ team_involved <chr> "home", "home", "home", "home", "home", "home…
#> $ team_name <chr> "Team Bell", "Team Bell", "Team Bell", "Team …
#> $ player_name <chr> "Serena Gray", "Serena Gray", "Serena Gray", …
#> $ first_name <chr> "Serena", "Serena", "Serena", "Manami", "Mana…
#> $ last_name <chr> "Gray", "Gray", "Gray", "Kojima", "Kojima", "…
#> $ sets_played <dbl> 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 3, 3, …
#> $ player_number <dbl> 15, 15, 15, 16, 16, 16, 19, 19, 19, 3, 3, 81,…
#> $ is_captain <lgl> FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FAL…
#> $ is_libero <lgl> FALSE, FALSE, FALSE, TRUE, TRUE, TRUE, FALSE,…
#> $ set_number <dbl> 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 1, 2, 1, 2, …
#> $ set_starting_position <chr> "3", NA, "6", "*", "*", "*", "5", NA, "5", "1…
#> $ serves <dbl> 6, NA, 3, 0, 0, 0, 2, NA, 2, 5, 5, 7, 3, NA, …
#> $ serve_errors <dbl> 2, NA, 0, 0, 0, 0, 0, NA, 0, 0, 0, 1, 2, NA, …
#> $ serve_aces <dbl> 1, NA, 1, 0, 0, 0, 0, NA, 0, 0, 0, 0, 0, NA, …
#> $ serve_efficiency <dbl> -0.167, NA, 0.667, NA, NA, NA, 0.000, NA, 0.5…
#> $ attack_attempts <dbl> 2, NA, 3, 0, 0, 0, 6, NA, 13, 0, 0, 7, 8, NA,…
#> $ attack_errors <dbl> 0, NA, 0, 0, 0, 0, 0, NA, 3, 0, 0, 0, 0, NA, …
#> $ attack_kills <dbl> 2, NA, 1, 0, 0, 0, 3, NA, 1, 0, 0, 3, 1, NA, …
#> $ attack_success_ratio <dbl> 1.00, NA, 0.33, NA, NA, NA, 0.50, NA, 0.08, N…
#> $ attack_efficiency <dbl> 1.000, NA, 0.333, NA, NA, NA, 0.500, NA, -0.2…
#> $ receptions <dbl> 0, NA, 2, 0, 2, 1, 5, NA, 7, 0, 0, 7, 12, NA,…
#> $ reception_errors <dbl> 0, NA, 1, 0, 0, 1, 0, NA, 2, 0, 0, 0, 1, NA, …
#> $ positive_reception_ratio <dbl> NA, NA, 0.50, NA, 0.50, 0.00, 0.80, NA, 0.14,…
#> $ perfect_reception_ratio <dbl> NA, NA, 0.00, NA, 0.50, 0.00, 0.20, NA, 0.14,…
#> $ block_points <dbl> 2, NA, 1, 0, 0, 0, 0, NA, 0, 0, 0, 0, 0, NA, …
#> $ block_touches <dbl> 0, NA, 3, 0, 0, 0, 0, NA, 0, 0, 0, 0, 1, NA, …
#> $ earned_points <dbl> 5, NA, 3, 0, 0, 0, 3, NA, 1, 0, 0, 3, 1, NA, …
#> $ net_points <dbl> 3, NA, 2, 0, 0, -1, 3, NA, -4, 0, 0, 2, -2, N…
#> $ assists <dbl> 0, NA, 0, 1, 0, 0, 0, NA, 0, 12, 8, 0, 0, NA,…
#> $ successful_digs <dbl> 0, NA, 3, 3, 4, 4, 0, NA, 1, 3, 3, 0, 1, NA, …
#> $ id <chr> "68d99179b1659f25ae13f696", "68d99179b1659f25…
#> $ spike_hp <dbl> 0, NA, 0, 0, 0, 0, 0, NA, 1, 0, 0, 0, 1, NA, …
#> $ points <dbl> 3, NA, 1, 0, 0, 0, 0, NA, 1, 0, 0, 1, 0, NA, …
#> $ league <chr> "au", "au", "au", "au", "au", "au", "au", "au…Use load_team_boxscore to access team boxscore data.
team_boxscores <- load_team_boxscore("mlv", 2025)
glimpse(team_boxscores)
#> Rows: 918
#> Columns: 29
#> $ match_id <dbl> 2160916, 2160916, 2160916, 2160916, 2160916, …
#> $ season <dbl> 2025, 2025, 2025, 2025, 2025, 2025, 2025, 202…
#> $ match_datetime <dttm> 2025-01-10 00:00:00, 2025-01-10 00:00:00, 20…
#> $ team_involved <chr> "home", "home", "home", "away", "away", "away…
#> $ team_name <chr> "Orlando Valkyries", "Orlando Valkyries", "Or…
#> $ set_number <dbl> 1, 2, 3, 1, 2, 3, 1, 2, 3, 4, 5, 1, 2, 3, 4, …
#> $ serves <dbl> 25, 24, 26, 18, 19, 22, 22, 25, 22, 25, 15, 2…
#> $ serve_errors <dbl> 1, 2, 5, 5, 4, 1, 4, 2, 1, 3, 1, 5, 1, 3, 2, …
#> $ serve_aces <dbl> 1, 2, 1, 0, 0, 1, 0, 1, 2, 0, 0, 0, 1, 1, 1, …
#> $ serve_efficiency <dbl> 0.040, 0.000, -0.154, -0.222, -0.211, 0.136, …
#> $ attack_attempts <dbl> 27, 37, 52, 38, 38, 50, 46, 37, 40, 41, 23, 4…
#> $ attack_errors <dbl> 2, 0, 3, 2, 3, 7, 5, 4, 0, 4, 1, 4, 4, 2, 3, …
#> $ attack_kills <dbl> 14, 15, 15, 14, 15, 10, 13, 12, 9, 15, 11, 13…
#> $ attack_success_ratio <dbl> 0.52, 0.41, 0.29, 0.37, 0.39, 0.20, 0.28, 0.3…
#> $ attack_efficiency <dbl> 0.407, 0.378, 0.231, 0.237, 0.289, 0.040, 0.1…
#> $ receptions <dbl> 13, 15, 21, 24, 22, 21, 20, 18, 22, 20, 12, 1…
#> $ reception_errors <dbl> 0, 0, 1, 1, 2, 1, 0, 1, 1, 1, 0, 0, 1, 2, 0, …
#> $ positive_reception_ratio <dbl> 0.46, 0.47, 0.48, 0.46, 0.55, 0.43, 0.45, 0.2…
#> $ perfect_reception_ratio <dbl> 0.23, 0.33, 0.29, 0.08, 0.23, 0.33, 0.10, 0.1…
#> $ block_points <dbl> 3, 1, 1, 1, 1, 0, 0, 6, 4, 3, 0, 1, 2, 7, 1, …
#> $ block_touches <dbl> 5, 2, 3, 1, 8, 5, 6, 6, 2, 3, 2, 4, 4, 5, 3, …
#> $ earned_points <dbl> 18, 18, 17, 15, 16, 11, 13, 19, 15, 18, 11, 1…
#> $ net_points <dbl> 15, 16, 7, 7, 7, 2, 4, 12, 13, 10, 9, 5, 7, 1…
#> $ assists <dbl> 12, 14, 14, 14, 14, 10, 12, 10, 9, 14, 11, 13…
#> $ successful_digs <dbl> 15, 15, 29, 9, 19, 31, 23, 18, 20, 16, 12, 23…
#> $ id <chr> "6780447a19c53e576a0e9ec0", "6780447a19c53e57…
#> $ spike_hp <dbl> 1, 1, 0, 3, 1, 1, 1, 2, 7, 1, 0, 0, 6, 4, 3, …
#> $ points <dbl> 8, 8, 5, 1, 4, 4, 4, 9, 6, 6, 3, 4, 5, 10, 4,…
#> $ league <chr> "mlv", "mlv", "mlv", "mlv", "mlv", "mlv", "ml…
Need a high-speed mirror for your open-source project?
Contact our mirror admin team at info@clientvps.com.
This archive is provided as a free public service to the community.
Proudly supported by infrastructure from VPSPulse , RxServers , BuyNumber , UnitVPS , OffshoreName and secure payment technology by ArionPay.