Sumo, de nationale sport van Japan. De sport waar twee mensen het uitvechten in een ring. De eerste die de andere uit de ring of op de vloer gooit wint. In het jaar 712 werd er voor het eerst verwezen naar sumo. Het is dus een millennia oude sport. Het is ook verbonden met veel rituelen, zoals de ceremonie voor elk toernooi en zelfs de korte ceremoniën voor elk gevecht.[1]
Veel beoefenaars van verschillend sporten zijn over de jaren veranderd. De spelers van de NBA zijn over de jaren langer en zwaarder geworden.[2] Sprinters zijn ook sneller geworden over de jaren heen.[3]
We wil kijken of de eeuwen oude sport van sumo ook is verandert over de jaren. Dit gaan we doen door naar een dataset te kijken waarin de gewichten en lengtes van rikishi(worstelaren) voor elk toernooi beschreven staan. Deze dataset bevat alleen de lengtes en gewichten en niet bijvoorbeeld de snelheid van de rikishi. Het is dus gelimiteerd qua informatie. Deze dataset gaat terug tot het begin van jaar 1983, dus we kunnen alleen de rikishi van de afgelopen ~40 jaar observeren.
Onze verwachtingen zijn dat terwijl er verschil is, dat het verwaarloosbaar is. Sumo is een traditionele sport. Wij verwachten dat trainers en recruiters meer aan rituelen en buikgevoel houden in plaats van echte sport science om de rikishi te recruiten. Professioneel Sumo wordt ook alleen beoefend in Japan[1]. Hierdoor zal er niet veel variëteit komen vanuit het buitenland. Rikishi dragen ook niet veel uitrusting. Terwijl een sprinter nieuwere en betere schoenen zou kunnen dragen, zal dit niet het geval zijn in sumo.
De dataset die we gaan gebruiken komt van data.world en is geüpload door Mikhail Zhilkin. De dataset is te vinden op https://data.world/cervus/sumo-japan . Deze dataset bevat de gewichten en lengtes van verschillende worstelaren voor elk toernooi. De dataset gaat van 1983 tot 2020.
Hij heeft de website http://sumodb.sumogames.de/ gebruikt om de dataset te maken. Hier zijn toernooien van nu tot de 1800 gearchiveerd. Het is jammer dat deze dataset maar terug gaat tot toernooien van 1983.
Om de data set op te halen moeten we eerst een aantal packages inladen. Hierna gaan we de api call maken om de dataset op te halen. Om deze api call te maken, moet er naar de url van de dataset een GET request worden gestuurd. In deze request moet ook de api token worden meegeven in de header.[4] Hierna wordt er met behulp van de httr library de body uit het antwoord gehaald.[5]
library(dplyr) #Om verschillende dingen te bewerken.
library(httr) #Om de dataset op te halen via een api call
library(readr) #Om de content te lezen van de opgehaalde dataset.
library(stringr) #Om strings mee te bewerken
library(knitr) #Voor tabellen
library(kableExtra) #Voor tabellen
library(ggplot2) #plots
library(lubridate) #datums
#De api call
#Banzuke staat voor rankschikking van profesionele worstelaren.
banzuke <- GET("https://api.data.world/v0/file_download/cervus/sumo-japan/banzuke.csv",
add_headers(Authorization = "Bearer eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJwcm9kLXVzZXItY2xpZW50OmRpY2t2YW5kaWprIiwiaXNzIjoiYWdlbnQ6ZGlja3ZhbmRpams6OmU5NDg5YTY1LTE5ZTktNDM0Ni1iZjNjLTRmMDM2OWQzZjU5NyIsImlhdCI6MTU4NDQ1MzczOCwicm9sZSI6WyJ1c2VyX2FwaV9yZWFkIiwidXNlcl9hcGlfd3JpdGUiXSwiZ2VuZXJhbC1wdXJwb3NlIjp0cnVlLCJzYW1sIjp7fX0.-zYIIwBzu7Rvu6RLhJ6KQwWMxeW3QF4-GhY_qi4NbKVIcQ3a6L_4awlyv57PqN_dU-VXiFlc0SzwJBQkKaAnFA")) %>%
content() %>%
as.data.frame()
Laten we als volgt kijken naar de structuur van de dataset:
#laat de structuur zien
str(banzuke, give.attr = F)
## 'data.frame': 164410 obs. of 12 variables:
## $ basho : num 1983 1983 1983 1983 1983 ...
## $ id : num 1354 4080 4095 4104 4112 ...
## $ rank : chr "Y1e" "Y1w" "Y2eHD" "O1e" ...
## $ rikishi : chr "Chiyonofuji" "Kitanoumi" "Wakanohana" "Takanosato" ...
## $ heya : chr "Kokonoe" "Mihogaseki" "Futagoyama" "Futagoyama" ...
## $ shusshin : chr "Hokkaido" "Hokkaido" "Aomori" "Aomori" ...
## $ birth_date: Date, format: "1955-06-01" "1953-05-16" ...
## $ height : num 182 179 186 181 183 ...
## $ weight : num 116 165 133 144 163 121 138 181 124 156 ...
## $ prev : chr "Y1e" "Y2eHD" "Y1w" "O1e" ...
## $ prev_w : num 14 9 0 10 10 12 8 9 9 11 ...
## $ prev_l : num 1 3 0 5 5 3 7 6 6 4 ...
De basho kolom is het toernooi. De id is de worstelaar id. De rank is de ranking van de rikishi voor dat toernooi. De rikishi kolom beschrijft de naam. De heya is de stal waar de sumo worstelaren trainen en leven. De shusshin is de geboorteplaats. Gewichten en lengtes zijn waarden voordat de rikishi aan het toernooi meedoet.
Hierna moeten we kijken naar de data kwaliteit. De basho is wel in een verkeerd formaat. Dit moet een datum zijn. laten we er van uit gaan dat alle toernooien op de eerste dag van de maand plaatsvonden.
#Fix eerst de basho fout.
banzuke$basho <- as.Date(paste0(banzuke$basho, ".01"), format = "%Y.%m.%d")
#laat het aantal NAs per kolom zien.
colSums(is.na(banzuke))
## basho id rank rikishi heya shusshin birth_date
## 0 0 0 0 0 0 663
## height weight prev prev_w prev_l
## 5174 5174 75 75 75
Hier zien we dat er van verschillende kolommen data missen. Lengtes en geboortedatums veranderen niet. Hier kunnen we een waarde van een ander toernooien invullen. De lengtes zijn niet elk toernooi hetzelfde dus hier zullen we het gemiddelde van alle toernooien invullen.
#Fix de lenge NA's
#groepeer het eerst
#Vind de gemiddelde lengte en vul deze in de lege spot
banzuke <- banzuke %>%
group_by(id) %>%
mutate(height = ifelse (is.na(height),
ifelse(is.nan(mean(height, na.rm = T)), NA, mean(height, na.rm = T)),
height)) %>%
ungroup()
colSums(is.na(banzuke))
## basho id rank rikishi heya shusshin birth_date
## 0 0 0 0 0 0 663
## height weight prev prev_w prev_l
## 698 5174 75 75 75
We zien dat we nu een stuk minder NA’s hebben in de lengte. We kunnen dit ook proberen met geboortedatum maar dat levert geen verschil op en breekt de datum kolom. De gewichten zouden we technisch gezien kunnen interpoleren maar dat is niet mogelijk in deze dataset. De gewichten NA’s komen allemaal achter elkaar. (Zie Appendix voor geboortedatum en gewichten).
De prevs zijn zo weinig dat we er nu niet aan gaan zitten. Misschien een andere keer.
Sumo toernooien zijn opgedeeld in verschillende divisies. De Makuuchi en Juryo divisies worden als professioneel beschouwd. Aan de Makkuchi mag iedere rikishi met een Maegashira of hogere rank meedoen. Dit zijn ongeveer 42 worstelaren. De Juryo is een divisie lager en dat zijn ongeveer 20 worstelaren. De eerste letter in de rank kolom geeft de rank aan. We moeten dus aan de eerste letters uit de rank halen en deze een ordering aangeven. Ik ga ook meteen een subset maken van de professionele worstelaren.
#Ordering van de ranken
ranks <- c("Jk", "Jd", "Sd", "Ms", "J", "M", "K", "S", "O", "Y")
#Pak de eerste letter en plaats het in een nieuwe kolom
banzuke <- banzuke %>%
mutate(rank_name = factor(str_extract(rank, "^\\D+"), ordered = T, levels = ranks))
#Vervang de letter met de werkelijke naam
banzuke$rank_name = recode(banzuke$rank_name, Y = "Yokozuna",
O = "Ozeki",
S = "Sekiwake",
K = "Komusubi",
M = "Maegashira",
J = "Juryo",
Ms = "Makushita",
Sd = "Sandanme",
Jd = "Jonidan",
Jk = "Jonokuchi")
#Maak een subset van de profs
juryo_makuuchi <- banzuke %>%
filter(rank_name >= "Juryo")
#Check of de ordering juist is
max(banzuke$rank_name)
## [1] Yokozuna
## 10 Levels: Jonokuchi < Jonidan < Sandanme < Makushita < ... < Yokozuna
Iedereen boven de Juryo rank wordt dus als professioneel beschouwd.
In dit deel gaan we eerst een kijkje nemen naar wat interessante rikishi. Dit zijn gewoon wat leuke feitjes die we uit de data kunnen halen. Als je dit wilt overslaan ga dan naar Sumo over de jaren heen.
Daarna gaan we kijken naar de lengtes en gewichten over de jaren heen.
Laten we eerst eens kijken wie de meest aantal gewonnen wedstrijden heeft. Je moet wel rekening houden met het feit dat deze dataset terug gaat tot toernooien van het jaar 1983. We kunnen dus alleen kijken wie het meest aantal wedstrijden heeft gewonnen in de afgelopen ~40 jaar.
#Wie heeft het meest aantal gewonnen wedstijden
banzuke %>%
group_by(id) %>% #Groepeer bij worstelaar
summarise(rikishi = first(rikishi), #Summarise
total_wins = sum(prev_w, na.rm = T),
height = max(height, na.rm = T),
weight = max(weight, na.rm = T),
rank = max(rank_name)) %>%
arrange(desc(total_wins)) %>% #Sorteer
head(5) %>% #Pak de eerste 5
ungroup() %>%
mutate(pic = str_replace("<img src ='http://sumodb.sumogames.de/pics/0000.jpg' height = '200px'>", "0000", as.character(id))) %>% #Zorg ervoor dat er een plaatje komt
select(-id) %>% #Pak alle kolommen behalve id
kable( escape = F,
align = "l",
col.names = c("Rikishi", "Totaal gewonnen", "Lengte (cm)", "Hoogste gewicht (kg)", "Hoogste rank", "Plaatje"),
caption = "Rikishi's met meest gewonnen wedstrijden") %>% #Maak een tabel
kable_styling(bootstrap_options = c("striped", "hover")) %>% #Styling van tabel
scroll_box(height = "500px", width = "100%")
Rikishi | Totaal gewonnen | Lengte (cm) | Hoogste gewicht (kg) | Hoogste rank | Plaatje |
---|---|---|---|---|---|
Hakuho | 1146 | 193.0 | 154.0 | Yokozuna | |
Koga | 1044 | 185.0 | 175.0 | Ozeki | |
Kyokutenho | 924 | 192.0 | 160.0 | Sekiwake | |
Kogawa | 917 | 185.5 | 163.3 | Sekiwake | |
Suginomori | 907 | 186.0 | 152.0 | Sekiwake |
We zien dat Hakuho met 1146 gewonnen wedstrijden bovenaan staat.
Wat ons ook wel interessant lijkt om te bekijken, is wie de langste en wie de kortste professionele worstelaar is. Sumo worstelaren worden pas als professioneel beschouwd wanneer ze hoger dan de Juryo rank zijn. Laten we daar dus op filteren. Hou er weer rekening mee dat deze dataset terug gaat tot toernooien van 1983.
#Kijk wie de langste is
banzuke %>%
group_by(id) %>%
filter(any(rank_name >= "Juryo")) %>% #Filter eerst op hoger dan Juryo
summarise(rikishi = first(rikishi), #Summarise dan de waarde
height = max(height, na.rm = T),
weight = max(weight, na.rm = T),
rank = max(rank_name)) %>%
arrange(desc(height)) %>% #sorteer
head(5) %>% #pak de top 5
ungroup() %>%
mutate(pic = str_replace("<img src ='http://sumodb.sumogames.de/pics/0000.jpg' height = '200px'>", "0000", as.character(id))) %>% #maak plaatjes
select(-id) %>% #alles behalve id
kable( escape = F,
align = "l",
col.names = c("Rikishi", "Lengte (cm)", "Hoogste gewicht (kg)","Hoogste rank", "Plaatje"),
caption = "Langste professionele rikishi's") %>% #maak een tabel
kable_styling(bootstrap_options = c("striped", "hover")) %>%
scroll_box(height = "500px", width = "100%")
Rikishi | Lengte (cm) | Hoogste gewicht (kg) | Hoogste rank | Plaatje |
---|---|---|---|---|
Akebono | 204.0 | 232.0 | Yokozuna | |
Kotooshu | 204.0 | 157.0 | Ozeki | |
Kitao | 199.0 | 151.0 | Yokozuna | |
Baruto | 198.5 | 193.0 | Ozeki | |
Ogura | 198.0 | 175.5 | Maegashira |
#Doe hetzelfde maar dan voor de korste
banzuke %>%
group_by(id) %>%
filter(any(rank_name >= "Juryo")) %>%
summarise(rikishi = first(rikishi),
height = max(height, na.rm = T),
weight = max(weight, na.rm = T),
rank = max(rank_name)) %>%
arrange(height) %>%
head(5) %>%
ungroup() %>%
mutate(pic = str_replace("<img src ='http://sumodb.sumogames.de/pics/0000.jpg' height = '200px'>", "0000", as.character(id))) %>%
select(-id) %>%
kable( escape = F,
align = "l",
col.names = c("Rikishi", "Lengte (cm)", "Hoogste gewicht (kg)","Hoogste rank", "Plaatje"),
caption = "Kortste professionele rikishi's") %>%
kable_styling(bootstrap_options = c("striped", "hover")) %>%
scroll_box(height = "500px", width = "100%")
Rikishi | Lengte (cm) | Hoogste gewicht (kg) | Hoogste rank | Plaatje |
---|---|---|---|---|
Isobe | 166.5 | 134.4 | Maegashira | |
Terutsuyoshi | 169.0 | 112.0 | Maegashira | |
Enho | 169.0 | 95.0 | Maegashira | |
Kajiwara | 171.0 | 149.4 | Sekiwake | |
Tochitsurugi | 171.0 | 117.0 | Maegashira |
We zien dus dat Akebono de langste en dat Isobe de kortste professionele worstelaren zijn.
Nu gaan we kijken naar de lengtes en gewichten over de jaren heen van alle sumo worstelaren(Dus professionele worstelaren zitten ook in deze set). We gaan ook apart de professionele worstelaren bekijken. We gaan eerst kijken naar het aantal worstelaren per toernooi. Daarna gaan we de lengtes en gewichten over de jaren heen bekijken.
We kijken eerst naar het aantal worstelaren elk jaar. We gaan twee lijnen tekenen. Één voor de professionele en één voor alle worstelaren. In alle worstelaren zitten ook de professionele.
#Aantal totaal worstelaren per jaar
aantal_per_jaar <- banzuke %>%
group_by(basho) %>%
summarise(n = n())
#Aantal prof worstelaren per jaar
aantal_per_jaar_pro <- juryo_makuuchi %>%
group_by(basho) %>%
summarise(n = n())
ggplot(aantal_per_jaar, aes(x = basho, y = n, color = "Alle worstelaren")) +
geom_line() +
geom_line(data = aantal_per_jaar_pro, aes(x = basho, y = n, color = "Professionele worstelaren")) +
scale_color_manual(values=c("black", "gold")) +
labs(title = "Aantal worstelaren over de jaren heen", y = "Aantal", x = "Jaar")
Hier zien we dat het totaal aantal worstelaren over de jaren heen daalt. De professionele worstelaren (oftewel de worstelaren in de Makuuchi en Juryo divisies) blijven even. Dit komt omdat er altijd een vast aantal worstelaren in de top twee divisies zitten. Er zitten gewoonlijk 42 in de Makuuchi en 20 in de Juryo.
Nu gaan we een kijkje nemen naar de lengtes en gewichten. We gaan twee lijnen tekenen. Één voor de professionele en één voor alle worstelaren. In alle worstelaren zitten ook de professionele.
#Lengtes alle
gemPerBashoAll <- banzuke %>%
group_by(basho) %>%
summarise(gem_l = mean(height, na.rm = T), gem_w = mean(weight, na.rm = T)) %>%
ungroup()
#Lengtes profs
gemPerBashoPro <- juryo_makuuchi %>%
group_by(basho) %>%
summarise(gem_l = mean(height, na.rm = T), gem_w = mean(weight, na.rm = T)) %>%
ungroup()
ggplot(gemPerBashoAll, aes(x = basho, y = gem_l, color = "Alle worstelaren")) +
geom_line() +
geom_line(data = gemPerBashoPro, aes(x = basho, y = gem_l, color = "Professionele worstelaren")) +
scale_color_manual(values=c("black", "gold")) +
labs(title = "Gemiddelde lengte over de jaren van Sumo worstelaren", y = "Gemiddelde lengte (cm)", x = "Jaar")
ggplot(gemPerBashoAll, aes(x = basho, y = gem_w, color = "Alle worstelaren")) +
geom_line() +
geom_line(data = gemPerBashoPro, aes(x = basho, y = gem_w, color = "Professionele worstelaren")) +
scale_color_manual(values=c("black", "gold")) +
labs(title = "Gemiddeld gewicht over de jaren van Sumo worstelaren", y = "Gemiddeld gewicht (kg)", x = "Jaar")
Dit gaat tegen onze verwachtingen in. We verwachte dat het ongeveer hetzelfde zou blijven maar dat is niet zo.
Qua lengte zijn professionele sumo worstelaren hetzelfde gebleven. Je ziet wel dat over de jaren heen de gemiddelde sumo iets korter is geworden. Er is ongeveer 3 cm verschil tussen 1990 en 2020. Je ziet hier ook dat professionele sumo’s langer zijn dan de gemiddelde sumo’s. Er is ongeveer een 4 cm verschil.
Als we naar de gewichten kijken zien we wel duidelijk een stijging. Zowel de professionele als de gemiddelde worstelaar is zwaarder geworden. De gemiddelde worstelaar is nu 15kg zwaarder dan de 1983 worstelaar. De gemiddelde professionele worstelaar is 10kg zwaarder. Je ziet hier ook weer terug dat de professionele worstelaars waarden weer hoger liggen. Het is wel logisch dat de langere worstelaren ook zwaarder zijn. Misschien heeft dit ook te maken met leeftijd? Als een worstelaar zwaarder wordt over zijn carrière en als de professionele worstelaars ouder zijn dan de gemiddelde worstelaar, kan dit ook een invloed hebben. Laten wie hier ook naar kijken.
Laten we dus kijken naar de gemiddelde leeftijd.
Het is ook leuk om te kijken of de gemiddelde rikishi(worstelaar) zwaarder wordt over zijn carrière. We willen alleen rikishi’s hebben die na het eerst toernooi in de dataset zijn begonnen. We weten niet wanneer iemand is begonnen als deze voor het eerste toernooi in de dataset is begonnen. We kunnen dan ook niet achterhalen welk jaar van zijn carrière dit persoon zit. We kunnen per jaar kijken wat het verschil is tussen het gewicht van elke rikishi. Hierna nemen we het gemiddelde.
Voor de leeftijd tekenen we weer twee lijnen. Één voor alle worstelaren en één voor alleen de professionele. In alle worstelaren zitten ook de professionele. Voor het gewichtsverschil over de jaren kijken we alleen naar alle worstelaren.
#Gemiddelde leeftijd alle
leeftijd_per_basho <- banzuke %>%
mutate(leeftijd = time_length(difftime(as.Date(basho), as.Date(birth_date)), "years")) %>%
group_by(basho) %>%
summarise(gem_l = mean(leeftijd, na.rm = T)) %>%
ungroup()
#Gemiddelde leeftijd profs
leeftijd_per_basho_pro <- juryo_makuuchi %>%
mutate(leeftijd = time_length(difftime(as.Date(basho), as.Date(birth_date)), "years")) %>%
group_by(basho) %>%
summarise(gem_l = mean(leeftijd, na.rm = T)) %>%
ungroup()
ggplot(leeftijd_per_basho, aes(x = basho, y = gem_l, color = "Alle worstelaren")) +
geom_line() +
geom_line(data = leeftijd_per_basho_pro, aes(x = basho, y = gem_l, color = "Professionele worstelaren")) +
scale_color_manual(values=c("black", "gold")) +
labs(title = "Gemiddelde leeftijd over de jaren van Sumo worstelaren", y = "Gemiddelde leeftijd (jaar)", x = "Datum (Jaar)")
#nu kijken naar het gewicht verschil.
gewverschil <- banzuke %>%
group_by(id) %>%
filter(!any(basho == as.numeric(as.Date("1983-01-01")))) %>% #filter alle worstelaren die in 1983-01-01 hebben geworsteld
mutate(carrierejaar = round(time_length(difftime(as.Date(basho), as.Date(first(basho))), "years"), 1)) %>% #bereken carriere jaar
filter(carrierejaar %% 1 == 0) %>% #we gaan per jaar kijken dus filter alles er tussen uit
arrange(id, basho) %>%
mutate(gewichtverschil = weight - lag(weight)) %>% #Bereken gewichtsverschil ten opzicht van vorig jaar
ungroup() %>%
group_by(carrierejaar) %>%
summarise(gem = mean(gewichtverschil, na.rm = T), n = n())
ggplot(gewverschil, aes(x = carrierejaar, y = gem)) +
geom_line() +
geom_line(y = 0, color = "red") +
labs(title = "Gemiddeld gewichtsverschil van sumo worstelaren ten opzichte van hun\nvorige jaar verdeeld over hun carrière jaren",
y = "Gemiddeld gewicht verschil ten opzichte van vorige jaar(kg)",
x = "Carriere jaar (jaar)")
Sample size per carrière jaar
kable(select(gewverschil, carrierejaar, n), align = "l", caption = "Sample size per carrierejaar") %>%
kable_styling(bootstrap_options = c("striped", "hover")) %>%
scroll_box(height = "200px")
carrierejaar | n |
---|---|
0 | 4334 |
1 | 3153 |
2 | 2680 |
3 | 2338 |
4 | 2021 |
5 | 1767 |
6 | 1552 |
7 | 1354 |
8 | 1190 |
9 | 1018 |
10 | 865 |
11 | 713 |
12 | 586 |
13 | 468 |
14 | 373 |
15 | 276 |
16 | 214 |
17 | 152 |
18 | 115 |
19 | 77 |
20 | 54 |
21 | 46 |
22 | 38 |
23 | 30 |
24 | 19 |
25 | 15 |
26 | 9 |
27 | 4 |
28 | 3 |
29 | 2 |
30 | 2 |
31 | 1 |
32 | 1 |
33 | 1 |
We zien dat de rikishi die in de professionele divisies zitten wat ouder zijn. Dit is ook wel logisch want je moet de rangen beklimmen wil je in de top divisies vechten. We zien ook dat de gemiddelde rikishi ouder wordt over de jaren heen. De professionele sumo worstelaren blijven gemiddeld wel dezelfde leeftijd.
Uit de tweede grafiek zien we wel dat rikishi aankomen aan het begin van hun carrière. Na hun 10e jaar beginnen ze met afvallen. Je moet wel opletten dat de sample size met ieder jaar omlaag gaat zoals te zien in de tabel hierboven. De data van latere jaren is dus minder nauwkeurig.
De hypothese was dat de sport over het algemeen hetzelfde zou blijven. Dit dachten we omdat sumo een hele traditionele sport is.
Toch blijken er een aantal veranderingen in de sport plaats te vinden.
Het aantal worstelaren ging iets omlaag over de jaren heen. De gemiddelde rikishi is ook iets korter geworden. Wat we ook zagen is dat worstelaren nu een stuk zwaarder zijn dan in 1983. Ook zien we dat de gemiddelde rikishi iets ouder is dan vorige jaren.
We kunnen ook een duidelijk verschil zien tussen de gemiddelde worstelaar en de professionele worstelaren. Professionele rikishi zijn over het algemeen langer en zwaarder. Ook zijn ze ouder dan de gemiddelde rikishi.
Omdat de professionele rikishi langer zijn, kan dat de reden zijn dat ze ook zwaarder zijn. We zien ook duidelijk dat worstelaren zwaarder worden over hun carrière. Omdat de professionele worstelaren gemiddeld ouder zijn kan dit ook een invloed hebben op hun gewicht. Hierdoor kunnen de professionele rikishi ook zwaarder zijn.
Als vervolg onderzoek kunnen we kijken naar een grotere dataset zodat we beter kunnen zien hoe de veranderingen verder terug in de tijd eruit zien.
Ook kan er nog een analyse gedaan worden waar de rikishi vandaan komen. Dit is hier niet gedaan wegens tijd tekort.
[1] Wikipedia contributors. (2020, 18 maart). Sumo. Geraadpleegd van https://en.wikipedia.org/wiki/Sumo
[2] Curcic, D. (2019, 14 mei). 67 Years of Height Evolution in the NBA - In-depth Research. Geraadpleegd van https://runrepeat.com/height-evolution-in-the-nba
[3] Grothjan, E. (2016, 15 augustus). Usain Bolt and the Fastest Men in the World Since 1896 – on the Same Track. Geraadpleegd van https://www.nytimes.com/interactive/2016/08/15/sports/olympics/usain-bolt-and-120-years-of-sprinting-history.html
[4] https://apidocs.data.world/toolkit/api/api-endpoints/files/downloadfile
[5] https://cran.r-project.org/web/packages/httr/vignettes/quickstart.html
[6] https://www.youtube.com/watch?v=dQw4w9WgXcQ
Hier staan stukjes code die niet in het bovenste stuk zijn gebruikt.
Hier zie je dat het aantal na’s nog hetzelfde is na het vervangen van een andere toernooi. Dit stukje code verpest ook de datums kolom en daarom is het niet in het stuk hierboven gedaan.
banzuke %>%
group_by(id) %>%
mutate(bd = ifelse (is.na(birth_date), min(birth_date, na.rm = T), birth_date)) %>%
is.na() %>%
colSums()
## basho id rank rikishi heya shusshin birth_date
## 0 0 0 0 0 0 663
## height weight prev prev_w prev_l rank_name bd
## 698 5174 75 75 75 0 0
Hieronder wordt er gekeken naar het verschil van toernooien tussen twee NA’s. Als lag op 1 staat betekent dat er twee NA’s na elkaar komen. We zien uit deze data dat alle NA’s van gewichten na elkaar komen. Hierom is het niet mogelijk om gewichten te interpoleren.
#In het onderste stukje gaan we kijken of alle NA van een worstelaar naar elkaar komen.
banzuke %>%
group_by(id) %>% #Groepeer eerst bij id
filter(any(is.na(weight))) %>% #Subset alle rikishi met ooit een NA in zijn gewicht
arrange(id, basho) %>% #Sorteer daarna op id van rikishi en dan toernooi. Hierdoor krijg je van elke riskishi een tijdlijn van hun gewicht
mutate(positionInGroup = 1:n()) %>% #geef elke kolom een ophogend nummer
filter(is.na(weight)) %>% #Haal alle kolommen zonder Na weg
mutate(lag = positionInGroup - lag(positionInGroup)) %>%
ungroup() %>%
count(lag)
## # A tibble: 2 x 2
## lag n
## <int> <int>
## 1 1 3954
## 2 NA 1220