Inspired by the NCAA data extraction functions from the {baseballr}
package, the goal of {ncaavolleyballr}
is to extract women’s and men’s volleyball information from the NCAA website. The functions in this package can extract team records/schedules and player statistics for the 2020-2025 NCAA women’s and men’s divisions I, II, and III volleyball teams. Functions can aggregate statistics for teams, conferences, divisions, or custom groups of teams.
Installation
You can install the stable released version of flashr from CRAN with:
install.packages("ncaavolleyballr")
You can install developmental versions from GitHub with:
# install.packages("remotes")
remotes::install_github("JeffreyRStevens/ncaavolleyballr")
Usage
A suite of functions can be used to extract season, match, and play-by-play data for teams and players. See the Getting Started vignette for a more thorough description of the functions.
Season data
The NCAA uses a unique team ID for each women’s and men’s volleyball team and season. So to access a team’s season data, first you will need to get that ID with the find_team_id()
. For instance, to find the ID for Penn State’s 2024 season:
find_team_id("Penn St.", 2024)
#> [1] "585406"
With this team ID, you can now extract overall season performance data for the team’s players with the player_season_stats()
.
find_team_id("Penn St.", 2024) |>
player_season_stats()
Season | Team | Conference | Number | Player | Yr | Pos | Ht | Hometown | High School | GP | GS | S | Kills | Errors | Total Attacks | Hit Pct | Assists | Aces | SErr | Digs | RetAtt | RErr | Block Solos | Block Assists | BErr | PTS | BHE | Trpl Dbl |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
2024-2025 | Penn St. | Big Ten | 1 | Taylor Trammell | Sr | MB | 6-2 | Lexington, KY | Henry Clay | 37 | 37 | 130 | 260 | 48 | 480 | 0.442 | 3 | 1 | 5 | 25 | 14 | 4 | 11 | 124 | 7 | 334.0 | NA | NA |
2024-2025 | Penn St. | Big Ten | 2 | Ava Falduto | Fr | L/DS | 5-7 | Elmhurst, IL | IC Catholic Prep | 37 | 3 | 135 | 0 | 0 | 7 | 0.000 | 70 | 39 | 43 | 310 | 543 | 21 | NA | NA | NA | 39.0 | NA | NA |
2024-2025 | Penn St. | Big Ten | 3 | Gillian Grimes | Jr | L/DS | 5-6 | Westchester, IL | Nazareth Academy | 37 | 0 | 135 | 4 | 0 | 11 | 0.364 | 163 | 38 | 55 | 529 | 551 | 29 | NA | NA | NA | 42.0 | NA | NA |
2024-2025 | Penn St. | Big Ten | 4 | Karis Willow | So | OH | 6-4 | Arlington, OH | Liberty Benton | 2 | 0 | 2 | 2 | 2 | 6 | 0.000 | NA | NA | NA | NA | 5 | NA | NA | NA | NA | 2.0 | NA | NA |
2024-2025 | Penn St. | Big Ten | 5 | Jordan Hopp | Sr | MB | 6-2 | Alliance, NE | Alliance | 10 | 0 | 19 | 12 | 7 | 31 | 0.161 | NA | NA | NA | 2 | 1 | NA | 2 | 18 | NA | 23.0 | NA | NA |
2024-2025 | Penn St. | Big Ten | 6 | Kate Lally | So | DS | 5-9 | State College, PA | State College | 3 | 0 | 3 | 0 | 0 | 0 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
2024-2025 | Penn St. | Big Ten | 8 | Camryn Hannah | Sr | OH | 6-2 | Lansing, IL | Marist | 37 | 4 | 133 | 480 | 179 | 1052 | 0.286 | 4 | 28 | 67 | 113 | 129 | 9 | 9 | 31 | 3 | 532.5 | NA | NA |
2024-2025 | Penn St. | Big Ten | 9 | Jess Mruzik | Sr | OH | 6-1 | Livonia, MI | Farmington Hills Mercy | 37 | 37 | 130 | 565 | 178 | 1497 | 0.259 | 51 | 32 | 55 | 313 | 693 | 35 | 17 | 51 | 5 | 639.5 | 1 | NA |
2024-2025 | Penn St. | Big Ten | 10 | Anjelina Starck | Sr | OH | 6-2 | Colorado Springs, CO | Rampart | 29 | 24 | 92 | 24 | 15 | 94 | 0.096 | 19 | 7 | 1 | 146 | 293 | 18 | NA | 6 | NA | 34.0 | NA | NA |
2024-2025 | Penn St. | Big Ten | 11 | Jocelyn Nathan | So | L/DS | 5-6 | Wilmington, DE | Wilmington Friends School | 22 | 10 | 59 | 0 | 0 | 0 | NA | 10 | 7 | 7 | 69 | 146 | 10 | NA | NA | NA | 7.0 | NA | NA |
2024-2025 | Penn St. | Big Ten | 14 | Caroline Jurevicius | Fr | RS | 6-2 | Cleveland, OH | Notre Dame-Cathedral Latin | 36 | 31 | 123 | 248 | 105 | 580 | 0.247 | 6 | NA | 4 | 54 | NA | NA | 3 | 78 | 2 | 290.0 | NA | NA |
2024-2025 | Penn St. | Big Ten | 19 | Alexa Markley | Jr | OH | 6-2 | Peachtree City, GA | McIntosh | 11 | 2 | 21 | 23 | 8 | 61 | 0.246 | NA | NA | 1 | 7 | 4 | 1 | 1 | 9 | 1 | 28.5 | NA | NA |
2024-2025 | Penn St. | Big Ten | 21 | Izzy Starck | Fr | S | 6-1 | Viera, FL | Viera | 37 | 37 | 135 | 112 | 37 | 280 | 0.268 | 1483 | 19 | 43 | 342 | 5 | 1 | 1 | 98 | 5 | 181.0 | 3 | NA |
2024-2025 | Penn St. | Big Ten | 23 | Catherine Burke | So | MB | 6-3 | Glenview, IL | Loyola Academy | 4 | 0 | 4 | 0 | 0 | 4 | 0.000 | NA | NA | 1 | NA | NA | NA | NA | 2 | NA | 1.0 | NA | NA |
2024-2025 | Penn St. | Big Ten | 24 | Quinn Menger | Sr | DS | 5-9 | Powhatan, VA | St. Catherine’s School | 37 | 1 | 122 | 0 | 0 | 2 | 0.000 | 17 | 28 | 27 | 38 | NA | NA | NA | NA | NA | 28.0 | NA | NA |
2024-2025 | Penn St. | Big Ten | 44 | Maggie Mendelson | Jr | MB | 6-5 | North Ogden, UT | Fremont | 37 | 36 | 127 | 242 | 69 | 568 | 0.305 | 15 | 4 | 15 | 46 | 25 | 1 | 18 | 128 | 7 | 328.0 | NA | NA |
2024-2025 | Penn St. | Big Ten | NA | TEAM | - | - | - | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | 11 | NA | NA | NA | NA | NA | NA |
2024-2025 | Penn St. | Big Ten | NA | Totals | - | - | - | NA | NA | NA | NA | 135 | 1972 | 648 | 4673 | 0.283 | 1841 | 203 | 324 | 1994 | 2420 | 140 | 62 | 545 | 30 | 2509.5 | 4 | 37 |
2024-2025 | Penn St. | Big Ten | NA | Opponent Totals | - | - | - | NA | NA | NA | NA | 135 | 1535 | 710 | 4593 | 0.180 | 1458 | 140 | 281 | 1716 | 2853 | 203 | 52 | 449 | 68 | 1951.5 | 5 | 37 |
Match data
The NCAA also uses a unique contest ID for each women’s and men’s volleyball match. The easiest way to get that ID is with find_team_contest()
, which returns the contest ID for all matches in a particular season (using the Team ID provided by find_team_id()
). For instance, to find the contest ID for 2024 National Championship match between Louisville and Penn State:
find_team_id("Penn St.", 2024) |>
find_team_contests() |>
tail()
date | team | opponent | result | attendance | contest |
---|---|---|---|---|---|
12/06/2024 | Penn St. | Delaware St. | W 3-0 | 2516 | 6080734 |
12/07/2024 | Penn St. | North Carolina | W 3-1 | 2470 | 6080733 |
12/13/2024 | Penn St. | Marquette | W 3-1 | 2914 | 6081048 |
12/15/2024 | Penn St. | Creighton | W 3-2 | 3558 | 6081042 |
12/19/2024 | Penn St. | Nebraska | W 3-2 | 21726 | 6080708 |
12/22/2024 | Penn St. | Louisville | W 3-1 | 21860 | 6080706 |
From that, we can see that the contest ID is . If we pass this contest ID to the player_match_stats()
function, we’ll get a list with two data frames (one for each team in the contest) that contain player statistics for the match. If we want to get just the Penn State player data, we can set team = "Penn St."
.
player_match_stats(contest = "6080706", team = "Penn St.")
#> Warning: No website available for contest 6080706.
Play-by-play data
Play-by-play data are also available with match_pbp()
. This returns a data frame with all events and players.
Other functionality
By default, these functions return information on women’s teams, but they can be set to return men’s information by setting sport = "MVB"
. You can also aggregate data across conferences, divisions, or custom groups with conference_stats()
, division_stats()
, and group_stats()
.
Citation
To cite {ncaavolleyballr}
, use:
Stevens JR (2025). Extract Data from NCAA Women’s and Men’s Volleyball Website. R package version 0.4.3, https://github.com/JeffreyRStevens/ncaavolleyballr.
Acknowledgments
Many thanks to Bill Petti for making the code for NCAA stats extraction freely available in the {baseballr}
package. And thank you to Tyler Widdison for inspiring me to extract the play-by-play data (check out his {ncaavolleyballR}
package for some similar functionality). Code from {baseballr}
and {rvest}
(both licensed under an MIT license) have been incorporated and modified in this package.
The volleyball background in the logo was designed by Freepik.