Kelan tietotarjotinSiirry sisältöön

Avoimen datan käyttöohjeet

Käyttöohjeista saat tietoa

  • Kelan avoimen datan manuaalisesta ja ohjelmallisesta käytöstä
  • aineistojen lukemisesta ja suodattamisesta R-ohjelmointikielellä
  • siitä, miten voit soveltaa ohjeita haluamaasi aineistoon.

Data julkaistaan avoindata.fi-sivustolla tietoaineistoina. Yhteen tietoaineistoon sisältyy aina csv-muotoinen data ja json-muotoinen metadata. Tietoja voidaan käyttää manuaalisesti esimerkiksi Excel-tiedostoina tai ohjelmallisesti eri ohjelmointikielillä.

Manuaalinen käyttö

Sekä datan että metadatan voi ladata klikkaamalla Lataa-linkkiä tietoaineiston etusivulla. Datan voi tuoda esimerkiksi Exceliin. Data on eroteltu pilkuin, ja sen merkkikoodauksena on UTF-8.

Ohjelmallinen käyttö

Avoin data on koneluettavaa. Avoindata.fi-palvelu tarjoaa lukemiseen erilaisia vaihtoehtoja.

Tietoaineistojen käyttöönottoa ja suodatusta havainnollistetaan seuraavaksi maksettujen yleisten asumistukien aineiston avulla.

Tietoaineiston datan ja metatietojen haku

R:n ckanr (cran.r-project.org) -kirjaston ja Pythonin ckanapi (pypi.org) -kirjaston funktioilla voi suoraan lukea aineistoja avoindata.fi-palvelusta.

Seuraavassa koodiesimerkissä näytetään, miten Kelan tietoaineistoja voi tarkastella R:llä ja poimia tietyn aineiston datan ja metatiedot aineiston nimen perusteella. Esimerkissä poimitaan maksettujen yleisten asumistukien aineisto ja sen metatiedot.

library(ckanr)
library(readr)
library(jsonlite)
library(dplyr)
library(purrr)
library(knitr)

# Määritellään CKAN
ckanr_setup(url = "https://www.avoindata.fi/data/fi/")

# Etsitään kaikki Kelan tietoaineistot
pkg_kela <- package_search(q = "Kela")

# Katsotaan saatavilla olevien Kelan tietoaineistojen nimet
sapply(pkg_kela$results, with, title)

# Poimitaan tietoaineisto sen nimen perusteella
pkg_asumistuki <- package_search(q = "Kela", fq = "title:Maksetut yleiset asumistuet")

# Poimitaan tietoaineistojen resurssit
resources <- pkg_asumistuki$results[[1]]$resources

# Ladataan viimeisimmän saatavilla olevan tilastovuoden data
dat <- read_csv(resources[[1]]$url)

# Ladataan tietoaineiston metadata
meta <- resources |>
  keep(~.x$format == "JSON") |>
  map("url") |>
  unlist() |>
  fromJSON()

# Muuttujatiedot
vars <- meta$resources$schema$fields[[1]] |>
  select(-values) |>
  kable(format = "html", caption = "Datan muuttujatiedot")

# Katsotaan datan ensimmäisiä rivejä
head(dat)

Käyttöesimerkki

Avoimen datan aineistot sisältävät eri tasoille summattua tietoa. Taso voi viitata esimerkiksi aikatyyppiin, aluetietoon tai ikäryhmätietoon. Tutustu ennen datan suodatusta aineiston kuvaukseen ja avoindata.fi-sivustolla sekä aineiston metadataan, jossa kuvataan muun muassa muuttujien mahdolliset arvot. Kuvauksen ja metadatan löydät aineiston sivulta, katso Avoimen datan aineistot.

Aineistot kuvaus ja metadata tietoineen löytyvät aihealueittain täältä.

Seuraavassa koodiesimerkissä poimitaan lapsiperheille maksetut yleiset asumistuet Turussa tuoreimman tilastovuoden kesäkuussa.

vuosi <- dat |>
  distinct(vuosi) |>
  pull(vuosi)

dat |>
  filter(
    kunta_nimi == "Turku",
    kuukausi_nro == 6,
    aikatyyppi == "Kuukausi",
    ruokakuntatyyppi == "Lapsiperheet yhteensä",
    hallintamuoto == "Yhteensä"
  ) |>
  group_by(ikaryhma) |>
  summarise(sum_maksettu_eur = round(sum(maksettu_eur), 0)) |>
  kable(
    format = "markdown",
    caption = paste("Lapsiperheille maksetut yleiset asumistuet Turussa kesäkuussa", vuosi),
    col.names = c("Ikäryhmä", "Maksetut etuudet, euroa")
  )

Datan lukeminen DataStore-rajapinnasta SQL-haulla

R:n ckanr (cran.r-project.org) -kirjastossa on funktiot myös DataStore-rajapinnan kyselyyn. Pythonilla kysely täytyy tehdä urllib (docs.python.org) -kirjastolla.

Seuraavassa R-esimerkissä poimitaan DataStore-rajapinnasta SQL-haulla lapsiperheille maksetut yleiset asumistuet Turussa kuukauden mukaan.

library(ckanr)
library(glue)

# Määritellään CKAN
ckanr_setup(url = "https://avoindata.fi/data/fi/")

# Poimitaan tietoaineisto sen nimen perusteella
pkg_asumistuki <- package_search(q = "Kela", fq = "title:Maksetut yleiset asumistuet")

# Haetaan viimeisimmän saatavilla olevan tilastovuoden kuntatason aineiston ID
ID <- pkg_asumistuki$results[[1]]$resources[[1]]$id

# Poimitaan kuukausitasolla Turussa lapsiperheille maksettujen yleisten asumistukien summat
stat <- ckanr::ds_search_sql(sql = glue(
  "
  select
      VUOSIKUUKAUSI
      , KUNTA_NIMI
      , round(sum(MAKSETTU_EUR), 0) as SUM_MAKSETTU_EUR
    from \"{ID}\"
    where
      KUNTA_NIMI = 'Turku'
      and AIKATYYPPI = 'Kuukausi'
      and RUOKAKUNTATYYPPI = 'Lapsiperheet yhteensä'
      and HALLINTAMUOTO = 'Yhteensä'
  group by 1, 2
 "
  ),
  as = "table"
)
stat$records

Jaa tämä artikkeli

Jaa sivu Twitteriin Jaa sivu Facebookiin Jaa sivu LinkedIniin