Begin februari kon je in de krant1 lezen: “Stiptheid bij NMBS blijft historisch laag: meer dan 6000 treinen afgeschaft in januari”. Gelukkig biedt Infrabel een kijkje in hun gegevens via hun open data portaal2.
De volgende code vraagt de bezetting op.
# Benodigde bibliotheken
library('jsonlite')
library('httr')
# Importeert de data van Infrabel
res <- GET("https://opendata.infrabel.be/api/explore/v2.1/catalog/datasets/nationale-stiptheid-per-moment-en-per-maand/records?select=sum(min_rt)%20as%20totaal_min%2Csum(tel)%20as%20totaal_trein%2Csum(reg)%20as%20totaal_trein_stipt&group_by=maand")
data <- fromJSON(rawToChar(res$content))$results
data$maand <- as.Date(data$maand)
via head(data)
krijgen we een overzicht van deze gegevens:
maand totaal_min totaal_trein totaal_trein_stipt
1 2016-01-01 212787 100033 89899
2 2016-02-01 203292 102233 92905
3 2016-03-01 209805 104678 94993
4 2016-04-01 195684 99369 89996
5 2016-05-01 210082 91478 81611
6 2016-06-01 261317 96715 84004
totaal_min
stelt het totale aantal minuten vertraging per maand voor, totaal_trein
het totale aantal treinen dat reed en totaal_trein_stipt
het totale aantal treinen dat zonder (noemenswaardige) vertraging reed.
Maak onderstaand histogram met de gemiddelde vertraging.
trein_vertraging
aan, waarin je per maand berekent hoeveel treinen er wel (noemenswaardige) vertraging hadden.minuten_vertraging
en rond af op 2 cijfers na de komma.xmin
en xmax
. In xmin
bewaar je de kleinste waarde van dit gemiddeld aantal minuten vertraging. Rond hierbij naar beneden af via floor()
. Doe hetzelfde voor xmax
, maar rond daarbij naar boven af via ceiling()
.xlim = c(xmin - 1, xmax + 1)
om voldoende marge te hebben op de x-as.