The goal of fitzRoy is to make it easy to access data from the AFLM and AFLW competitions. It provides a simple and consistent API to access data such as match results, fixtures and player statistics from multiple data sources.
fitzRoy can be used to access data from
various sources using the
fetch_ functions. For a detailed
view on how the API works - view the Main
Fetch Functions vignette.
There are 5 main data sources for data in fitzRoy. Where possible, we do not edit the data from how we receive it, although in some cases, we do need to aggregate and calculate certain fields based on the structure of the site.
You can choose your data source as an argument to any
fetch_ function using the
We provide data from the (AFL website)[https://www.afl.com.au/]
as the default to any
fetch_ function. This data is from
the official AFL data provider. With this data, we can return data for
both the Mens and Womens competitions. The oldest data is from 2012. It
provides access to all data types including results, fixtures, ladders,
lineups and stats.
AFL Tables has historically been the main source of data in fitzRoy. It is the most complete source of data about AFL that exists (to our knowledge at least!). It contains data from 1897 and is the only data source included in fitzRoy with such historical data. The types of data it contains are results, ladders and stats.
Footywire has traditionally been the main source of player statistics in fitzRoy. It contains data dating back to 2012 and was generally used as a supplement to AFL Tables data. The types of data it returns are results, fixtures and statistics.
Squiggle is a famous AFL
Prediction and Analysis website run by Max Barry. In recent
years, Squiggle has become the main place to aggregate various
predictive models. Max has provided a nice and well documented API that fitzRoy uses to return
data. Helper functions included in the
fetch_ family will
return results, fixtures and ladders but the
fetch_squiggle_data function provides direct access to the
API. Read the Squiggle
API vignette for more details.
In most cases, trying to use the same source for all of your analysis will be most beneficial. This is not always possible as some sources only go back so far (the AFL website only has data back to 2011), while some data is not available (AFL Tables doesn’t have decent fixture data). If you are mixing sources, be careful to understand differences in naming structures, team names and player names.
It is also a good idea to avoid regularly fetching whole datasets. Where possible, try to keep an off-line version of your data and only request the smallest amount possible to get the new data you require. This is both faster (less data transferred over your Internet connection and less data living in your computer memory) but also helps to reduce traffic on the data providers servers.
Fixture data is available from multiple places. The most reliable and
complete data usually comes from the AFL website. From that website you
can specify either the Mens or Womens competitions using the
<- fetch_fixture(2021, comp = "AFLW") fixture %>% fixture select(utcStartTime, round.name, home.team.name, away.team.name, venue.name)
If wanted, you could return just a single round.
fetch_fixture(2021, round_number = 5, comp = "AFLM") %>% select(utcStartTime, round.name, home.team.name, away.team.name, venue.name)
You can get results data from other sources including
Footywire. The default source for
fetch_results() is the AFL.com.au website.
<- fetch_fixture(2020) fixture_afl <- fetch_fixture(2020, round_number = 1, comp = "AFLW") fixture_aflw <- fetch_fixture_squiggle(2020, round_number = 10) fixture_squiggle <- fetch_fixture_squiggle(2018)fixture_footywire
You can get the lineup for a particular round. This is usually useful when running after the teams have been announced but before the match has been played.
The only data source with lineup data is the AFL.com.au website.
fetch_lineup(2021, round_number = 1, comp = "AFLW") %>% select(round.name, status, teamName, player.playerName.givenName, player.playerName.surname, teamStatus)
You can access AFL match results data from various sources. The most complete is the AFL Tables data, which includes all matches from 1897-current.
<- fetch_match_results_afltables(1897:2019) results results
While it is possible to return all historical data, it is usually good practice to only return a small amount of data - such as a single season or round - and keep your own offline database of historical data.
<- fetch_results_afltables(2021) results_new bind_rows(results, results_new)
You can get results data from other sources including
default source for
fetch_results() is the AFL.com.au
<- fetch_results(2020, round_number = 11) results_afl <- fetch_results(2020, comp = "AFLW") results_aflw <- fetch_results_squiggle(2019, round_number = 1) results_squiggle <- fetch_results_footywire(1990)results_footywire
You can get AFLW results by using the
fetch_results(2020, comp = "AFLW") %>% select(match.name, venue.name, round.name, homeTeamScore.matchScore.totalScore, awayTeamScore.matchScore.totalScore)
The ladder for a particular round can be returned using
fetch_ladder. Usually this only makes sense to return for
one round at a time, although it is possible to return multiple
<- fetch_ladder(2020, round_number = 7, comp = "AFLW") %>% ladder select(season, round_name, position, team.name, pointsFor, pointsAgainst, form)ladder
There are many variables included in the AFL.com.au ladder.
<- fetch_ladder(2020, round_number = 7, comp = "AFLW") ladder ncol(ladder)
You can get ladder data from other sources including
Afltables. The default source for
fetch_ladder() is the AFL.com.au website.
<- fetch_ladder(2020, round_number = 11) ladder_afl <- fetch_ladder(2020, comp = "AFLW") ladder_aflw <- fetch_ladder_squiggle(2019, round_number = 1) ladder_squiggle <- fetch_ladder_afltables(1990)ladder_afltables
We can return player statistics for a set of matches. The exact stats that are included varies quite a bit between data sources.
The default is again the AFL.com.au which is fairly comprehensive.
fetch_player_stats(2020, comp = "AFLW")
We also have detailed player stats courtesy of Fryzigg.
fetch_player_stats(2019, source = "fryzigg")
Other providers include Afltables and Footywire.
<- fetch_player_stats(2020, round_number = 11) stats_afl <- fetch_player_stats(2020, source = "AFL", comp = "AFLW") stats_aflw <- fetch_player_stats(2019, round_number = 1, source = "footywire") stats_footywire <- fetch_player_stats_afltables(1990)stats_afltables