Snelstartgids OData v4
De OData API van het Centraal Bureau voor de Statistiek ontsluit de StatLine-datasets van het CBS in verschillende formaten die eenvoudig ingelezen kunnen worden in computerprogramma's. In deze snelstartgids wordt uitgelegd hoe de Wijken- en Buurtinfo uit 2017 (tabel 83765NED) ingeladen kan worden. Deze handleiding is bedoeld voor gebruikers van R of Python. Als voorkennis wordt verondersteld dat de gebruiker kan werken met functies en variabelen.
De codevoorbeelden kunnen eenvoudig naar het klembord worden gekopieerd door op de knop in het codeblok te klikken. De voorbeelden op deze pagina zijn ook gebundeld te vinden op GitHub.
Keuzemenu programmeertaal:
De CBS OData API ontsluit data in JSON-formaat en om dit formaat te converteren naar een dataframe in R gebruiken we het package jsonlite
. Voor het bewerken van de data gebruiken we tidyverse
. Deze twee packages zijn te installeren met
In de onderstaande code wordt een functie get_odata
gedefinieerd waarmee de data uit tabel 83765NED wordt opgehaald.
Dit geeft het volgende resultaat:
Een antwoord van een data-verzoek bevat maximaal 100 000 cellen, dus om een grotere dataset te downloaden moeten er meerdere verzoeken aan de API worden gedaan. Wanneer een dataset automatisch wordt afgekapt na het maximale aantal cellen wordt de link naar het volgende deel van de dataset meegestuurd in de variabele @odata.nextLink
. In de while
-lus wordt het downloaden van 100 000 cellen herhaald door het volgen van @odata.nextLink
tot alle informatie gedownload is.
De Measure-kolom bevat codes die horen bij gemeten variabelen en de kolom ValueAttribute geeft de status van een cijfer aan: wanneer een cijfer in een tabel mist wordt hier de reden beschreven. De kolom WijkenEnBuurten geeft de CBS-code voor een regio aan.
In de volgende handleiding over metadata wordt uitgelegd hoe de codes bij Measure en WijkenEnBuurten gekoppeld kunnen worden aan omschrijvingen met codelijsten.
In de onderstaande code wordt een functie get_odata
gedefinieerd waarmee de data uit tabel 83765NED wordt opgehaald. De CBS OData API ontsluit data in JSON-formaat, maar om databewerking eenvoudiger te maken converteren we dit naar een pandas
-dataframe.
Dit geeft het volgende resultaat:
Een antwoord van een data-verzoek bevat maximaal 100 000 cellen, dus om een grotere dataset te downloaden moeten er meerdere verzoeken aan de API worden gedaan. Wanneer een dataset automatisch wordt afgekapt na het maximale aantal cellen wordt de link naar het volgende deel van de dataset meegestuurd in de variabele @odata.nextLink
. In de while
-lus wordt het downloaden van 100 000 cellen herhaald door het volgen van @odata.nextLink
tot alle informatie gedownload is.
De Measure-kolom bevat codes die horen bij gemeten variabelen en de kolom ValueAttribute geeft de status van een cijfer aan: wanneer een cijfer in een tabel mist wordt hier de reden beschreven. De kolom WijkenEnBuurten geeft de CBS-code voor een regio aan.
In de volgende handleiding over metadata wordt uitgelegd hoe de codes bij Measure en WijkenEnBuurten gekoppeld kunnen worden aan omschrijvingen met codelijsten.