cf_open()
retrieves data from the CrossFit Open API, lightly pre-processed.
If you need low level access to the API, use cf_request()
.
If no data is returned by the API, an empty tibble with zero columns and zero rows is returned.
You'll typically need to use tidyr::unnest_wider()
and tidyr::hoist()
to further process this data.
This function will automatically paginate through the data. To avoid overloading the API, it will not perform more than 100 requests per minute.
Usage
cf_open(
year,
...,
division = cf_division$Men,
scale = cf_scale$rx,
affiliate = NULL,
n_pages = NULL,
progress = TRUE
)
Arguments
- year
The year to retrieve data for. Note that not all parameters will be valid for past years.
- ...
These dots are for future extensions and must be empty.
- division
The division to retrieve data for. One of the values in cf_division.
- scale
The workout scale to retrieve data for. One of the values in cf_scale.
- affiliate
An optional integer ID to only retrieve data about a particular affiliate.
- n_pages
An optional integer to limit the number of pages returned. Each page will have a maximum of 100 rows returned. This is useful if you just want to explore the data without downloading all of it. If not specified, this will download all available data.
- progress
Should a progress bar be shown for longer downloads?
Examples
library(tidyr)
library(dplyr)
top_100 <- cf_open(2022, n_pages = 1)
top_100 %>%
unnest_wider(entrant) %>%
hoist(scores, one = 1) %>%
select(competitorName, one) %>%
unnest_wider(one) %>%
select(competitorName, score, breakdown)
#> # A tibble: 100 × 3
#> competitorName score breakdown
#> <chr> <chr> <chr>
#> 1 Saxon Panchik 3800000 "12 rounds +\n3 wall walks\n12 db snatches\n5 box ju…
#> 2 Matt Poulin 3640000 "12 rounds +\n3 wall walks\n1 db snatches\n"
#> 3 Justin Medeiros 3720000 "12 rounds +\n3 wall walks\n9 db snatches\n"
#> 4 Colten Mertens 3610000 "12 rounds +\n1 wall walk\n"
#> 5 Phil Toon 3630000 "12 rounds +\n3 wall walks\n"
#> 6 Victor Ljungdal 3900000 "13 rounds\n"
#> 7 Jay Crouch 3630000 "12 rounds +\n3 wall walks\n"
#> 8 Scott Tetlow 3500000 "11 rounds +\n3 wall walks\n12 db snatches\n5 box ju…
#> 9 Cédric Lapointe 3880000 "12 rounds +\n3 wall walks\n12 db snatches\n13 box j…
#> 10 Dallin Pepper 3690000 "12 rounds +\n3 wall walks\n6 db snatches\n"
#> # … with 90 more rows
# CrossFit Huntersville
affiliate <- 16292
cf_open(2022, division = cf_division$Women, affiliate = affiliate) %>%
unnest_wider(entrant) %>%
hoist(scores, two = 2) %>%
select(competitorName, two) %>%
unnest_wider(two) %>%
select(competitorName, score, breakdown)
#> # A tibble: 10 × 3
#> competitorName score breakdown
#> <chr> <chr> <chr>
#> 1 Kiera Caveny-Cox 1930000 "2nd round of 4 +\n3 deadlifts\n2 bar-facing burp…
#> 2 Jackie Asbury 1610000 "2nd round of 7 +\n3 deadlifts\n"
#> 3 Devan Olschewske 1540000 "2nd round of 8 +\n7 deadlifts\n3 bar-facing burp…
#> 4 Erika Siedlaczek 1450000 "2nd round of 8 +\n1 deadlift\n"
#> 5 Aurianna Alexander 1360000 "2nd round of 9 +\n8 deadlifts\n"
#> 6 Kim McDonald 1410000 "2nd round of 9 +\n8 deadlifts\n5 bar-facing burp…
#> 7 Becky Goodrich 1090000 "Round of 9 +\n10 deadlifts\n9 bar-facing burpees…
#> 8 Moogie Fountain 1220000 "Round of 10 +\n9 deadlifts\n3 bar-facing burpees…
#> 9 Amanda Gorrod 1090000 "Round of 9 +\n10 deadlifts\n9 bar-facing burpees…
#> 10 Angela Garlock 1430000 "2nd round of 9 +\n8 deadlifts\n7 bar-facing burp…