Metadata OData v4
De metadata van een tabel geeft informatie die de inhoud en structuur van een dataset beschrijft. Er wordt hier uitgelegd hoe de metadata van de tabel Kerncijfers wijken en buurten 2017 gekoppeld kan worden aan de dataset.
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:
In de snelstartgids werd de functie get_odata
gedefinieerd en daarna gebruikt op de volgende manier:
library(tidyverse)
library(jsonlite)
get_odata <- function(targetUrl) {
data <- data.frame()
while(!is.null(targetUrl)){
response <- fromJSON(url(targetUrl))
data <- bind_rows(data,response$value)
targetUrl <- response[["@odata.nextLink"]]
}
return(data)
}
tableUrl <- "https://datasets.cbs.nl/odata/v1/CBS/83765NED"
targetUrl <- paste0(tableUrl,"/Observations")
data <- get_odata(targetUrl)
head(data)
Dankzij het pad .../Observations
worden de cellen van tabel 83765NED teruggegeven, maar ook de metadata is op te vragen via de API. Een overzicht van alle opties is te krijgen door Observations
weg te halen:
get_odata(tableUrl)
Dit geeft de volgende tabel:
name kind url
1 MeasureGroups EntitySet MeasureGroups
2 MeasureCodes EntitySet MeasureCodes
3 Dimensions EntitySet Dimensions
4 WijkenEnBuurtenGroups EntitySet WijkenEnBuurtenGroups
5 WijkenEnBuurtenCodes EntitySet WijkenEnBuurtenCodes
6 Observations EntitySet Observations
7 Properties Singleton Properties
De namen die eindigen op Groups horen bij tabellen die de hiërarchie van variabelen omschrijft. Het aantal inwoners van 0 tot 15 jaar valt bijvoorbeeld in de categorie "Leeftijdsgroepen". De namen die eindigen op Codes horen bij codelijsten. De tabel MeasureCodes geeft bijvoorbeeld de titels bij de codes die voorkomen in de kolom Measure van een dataset. De tabellen MeasureGroups en MeasureCodes met onze metadata zijn te downloaden met
groups <- get_odata(paste0(tableUrl,"/MeasureGroups"))
codes <- get_odata(paste0(tableUrl,"/MeasureCodes"))
De codelijsten zijn te koppelen aan de dataset met een left_join
:
# Koppelen van metadata aan tabel
data <- data %>%
left_join(codes, by=c("Measure"="Identifier"))%>%
left_join(groups, by=c("MeasureGroupId"="Id"))
De metadata van een tabel geeft informatie die de inhoud en structuur van een dataset beschrijft. In de snelstartgids werd de functie get_odata
gedefinieerd en daarna gebruikt op de volgende manier:
table_url = "https://datasets.cbs.nl/odata/v1/CBS/83765NED"
target_url = table_url + "/Observations"
data = get_odata(target_url)
Dankzij het pad .../Observations
worden de cellen van tabel 83765NED teruggegeven, maar ook de metadata is op te vragen via de API. Een overzicht van alle opties is te krijgen door Observations
weg te halen:
get_odata(table_url)
Dit geeft de volgende tabel:
kind name url
0 EntitySet MeasureGroups MeasureGroups
1 EntitySet MeasureCodes MeasureCodes
2 EntitySet Dimensions Dimensions
3 EntitySet WijkenEnBuurtenGroups WijkenEnBuurtenGroups
4 EntitySet WijkenEnBuurtenCodes WijkenEnBuurtenCodes
5 EntitySet Observations Observations
6 Singleton Properties Properties
De namen die eindigen op Groups horen bij tabellen die de hiërarchie van variabelen omschrijft. Het aantal inwoners van 0 tot 15 jaar valt bijvoorbeeld in de categorie "Leeftijdsgroepen". De namen die eindigen op Codes horen bij codelijsten. De tabel MeasureCodes geeft bijvoorbeeld de titels bij de codes die voorkomen in de kolom Measure van een dataset. De tabellen MeasureGroups en MeasureCodes met onze metadata zijn te downloaden met
groups = get_odata(table_url + "/MeasureGroups")
codes = get_odata(table_url + "/MeasureCodes")
De codelijsten zijn te koppelen aan de dataset met merge
uit het pandas
-package:
data = pd.merge(data, codes, left_on = "Measure", right_on = "Identifier")
data = pd.merge(data, groups, left_on = "MeasureGroupId", right_on = "Id")