The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.
olympicAthletes covers every modern Olympic Games from
Athens 1896 through Milano-Cortina
2026. Three core datasets carry all the information; the rest
of the package is convenience subsets of them (single sports, single
Games, pre-counted summaries) built for teaching examples. This vignette
walks through the three core datasets and shows a few representative
analyses.
| Dataset | Rows | One row per… |
|---|---|---|
olympic_athletes |
315,094 | (athlete, Games, event) participation |
medal_table |
1,929 | (Games, NOC) verified medal totals |
editions |
62 | Olympic edition (incl. cancelled Games) |
olympic_athletes is the headline long-format table.
medal_table and editions are companion tables
that make per-team-event medal counting and edition-level lookups easy
without re-aggregating 300k+ rows. The convenience subsets
(e.g. athletics_athletes,
olympic_athletes_2024, usa_summer_medals) are
documented in help(package = "olympicAthletes") and keep
the same columns as their parent dataset.
olympic_athletes: athlete-event participationsdata(olympic_athletes)
str(olympic_athletes, give.attr = FALSE, vec.len = 2)
#> 'data.frame': 315094 obs. of 16 variables:
#> $ id : int 12068 35094 35698 38123 41160 ...
#> $ name : chr "Arthur Charles Blake" "Angelos Fetsis" ...
#> $ sex : chr "M" "M" ...
#> $ age : int 24 NA 22 23 21 ...
#> $ height : num NA NA NA 154 NA ...
#> $ weight : num NA NA NA 45 NA ...
#> $ team : chr "United States" "Greece" ...
#> $ noc : chr "USA" "GRE" ...
#> $ games : chr "1896 Summer" "1896 Summer" ...
#> $ year : int 1896 1896 1896 1896 1896 ...
#> $ season : chr "Summer" "Summer" ...
#> $ city_local_latin: chr "Athína" "Athína" ...
#> $ city_english : chr "Athens" "Athens" ...
#> $ sport : chr "Athletics" "Athletics" ...
#> $ event : chr "Athletics Men's 1,500 metres" "Athletics Men's 1,500 metres" ...
#> $ medal : chr "Silver" NA ...A quick sanity check — participations per Games, by season:
tab <- table(olympic_athletes$year, olympic_athletes$season)
tail(tab, 10)
#>
#> Summer Winter
#> 2008 13602 0
#> 2010 0 4402
#> 2012 12920 0
#> 2014 0 4891
#> 2016 13688 0
#> 2018 0 5119
#> 2020 14535 0
#> 2022 0 5249
#> 2024 13660 0
#> 2026 0 5415Medals in olympic_athletes are
per-player: every member of a gold-winning ice hockey
roster has their own medal = "Gold" row. It is the right
shape for athlete-level analysis, but it inflates team counts when you
sum naively.
# Every roster member of the men's ice hockey gold medal team
# at Beijing 2022 gets a Gold row:
hockey_2022 <- subset(
olympic_athletes,
year == 2022 &
event == "Ice Hockey Men's Ice Hockey" &
medal == "Gold"
)
nrow(hockey_2022)
#> [1] 0For headline medal-table totals, use medal_table
instead.
medal_table: verified per-edition totalsmedal_table covers every Olympic edition from Athens
1896 through Milano-Cortina 2026 and uses the IOC per-team-event
convention.
data(medal_table)
head(subset(medal_table, year == 2024), 5)
#> edition_id games year season noc country gold
#> 1808 63 2024 Summer 2024 Summer USA United States 40
#> 1809 63 2024 Summer 2024 Summer CHN People's Republic of China 40
#> 1810 63 2024 Summer 2024 Summer JPN Japan 20
#> 1811 63 2024 Summer 2024 Summer AUS Australia 18
#> 1812 63 2024 Summer 2024 Summer FRA France 16
#> silver bronze total notes
#> 1808 44 42 126
#> 1809 27 24 91
#> 1810 12 13 45
#> 1811 19 16 53
#> 1812 26 22 64Top five NOCs at Paris 2024 by gold count:
paris <- subset(medal_table, year == 2024)
paris <- paris[order(-paris$gold, -paris$total), ]
head(paris[, c("noc", "country", "gold", "silver", "bronze", "total")], 5)
#> noc country gold silver bronze total
#> 1808 USA United States 40 44 42 126
#> 1809 CHN People's Republic of China 40 27 24 91
#> 1810 JPN Japan 20 12 13 45
#> 1811 AUS Australia 18 19 16 53
#> 1812 FRA France 16 26 22 64editions: metadata for every Gameseditions includes one row per Olympic edition (62 in
total), including the handful of Games cancelled by the World Wars.
data(editions)
head(editions[, c("games", "city_local_latin", "city_english", "country",
"opening_ceremony", "closing_ceremony",
"participants", "medal_events")], 10)
#> games city_local_latin city_english country opening_ceremony
#> 1 1896 Summer Athína Athens Greece 1896-04-06
#> 2 1900 Summer Paris Paris France <NA>
#> 3 1904 Summer St. Louis St. Louis United States 1904-05-14
#> 4 1906 Summer Athína Athens Greece 1906-04-22
#> 5 1908 Summer London London Great Britain 1908-07-13
#> 6 1912 Summer Stockholm Stockholm Sweden 1912-07-06
#> 7 1916 Summer Berlin Berlin Germany <NA>
#> 8 1920 Summer Antwerpen Antwerp Belgium 1920-08-14
#> 9 1924 Summer Paris Paris France 1924-07-05
#> 10 1924 Winter Chamonix Chamonix France 1924-01-24
#> closing_ceremony participants medal_events
#> 1 1896-04-15 176 43
#> 2 <NA> 1241 95
#> 3 <NA> 650 95
#> 4 1906-05-02 841 74
#> 5 1908-07-25 2024 110
#> 6 1912-07-15 2409 107
#> 7 <NA> NA NA
#> 8 1920-08-30 2680 162
#> 9 1924-07-27 3255 131
#> 10 1924-02-05 312 17Use it to enrich olympic_athletes with edition-level
facts (host country, opening date, total medal events) without scraping
anything yourself.
data-raw/DATASET.R reproduces every
.rda in data/ from the CSVs in
data-raw/.See ?olympic_athletes, ?medal_table, and
?editions for full column-level documentation.
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.