statsDK - Tilgå Statistikbanken direkte fra R!

statsDK - Tilgå Statistikbanken direkte fra R!

I denne artikel vil jeg kort præsentere, hvordan du hurtigt kan komme i gang med at tilgå data fra Statistikbanken direkte fra R med R-pakken statsDK, som er udviklet af Mikkel Freltoft Krogsholm. R er en open-source software, som er lavet med henblik på statistisk dataanalyse og kan downloades på https://cran.r-project.org/.

I Statistikbanken er det ikke muligt at hente mere end 10.000 tal fra en statistik (med mindre du har et login). Dette problem løser statsDK-pakken, hvor det er muligt at overskride 10.000-tals begrænsningen og hente hele statistikken. Dertil er det meget bekvemt, at du kan hente data direkte fra R, hvis det i forvejen er et af dine foretrukne værktøjer til visualisering og dataanalyse.

For at bruge statsDK-pakken skal den først installeres. For at replikkere eksemplet her, kræver det også, at du installerer tidyverse-pakken.

install.packages("statsDK")
install.packages("tidyverse")

Når du har installeret de to pakker, skal du hente dem fra dit library.

library(statsDK)
library(tidyverse)

Nu er du klar til at hente data fra Statistikbanken direkte fra R!

statsDK-pakken har en række forskellige funktioner, som kan bruges til at surfe rundt i Statistikbankens indhold. I praksis er det dog nok nemmest at gå ind på https://www.statistikbanken.dk/ og finde navnet på den statistik, du interesseret i og finde statistikkens forkortelse. Statistikken kan hentes med retrieve_data fra statsDK. Statistikken kan hentes for alle år ved blot at skrive retrieve_data("FOLK2"), men det tager en del tid at downloade (ca. 5 min. for mit vedkommende.) og er ikke nødvendigt for dette eksempel. Derfor henter jeg kun “FOLK2”-statistikken (folketallet 1. januar) fra 1980.

folk2 <- retrieve_data("FOLK2", Tid = "1980")

Sådan - nu har du hentet data fra Statistikbanken direkte fra R! For god ordens skyld, så lad os lige se på det data, som vi har hentet fra Statistikbanken, inden vi runder artiklen her af.

Lad os først se på variablenes formater i datasættet samt datasættets første rækker.

glimpse(folk2)
## Observations: 17,207
## Variables: 7
## $ TID      <int> 1980, 1980, 1980, 1980, 1980, 1980, 1980, 1980, 1980,...
## $ ALDER    <chr> "37 years", "37 years", "37 years", "37 years", "37 y...
## $ KØN      <chr> "Women", "Men", "Men", "Men", "Men", "Men", "Men", "M...
## $ HERKOMST <chr> "Persons of Danish origin", "Descendant", "Descendant...
## $ STATSB   <chr> "Denmark", "Foreign", "Foreign", "Foreign", "Foreign"...
## $ IELAND   <chr> "Denmark", "Iceland", "Norway", "Sweden", "Netherland...
## $ INDHOLD  <int> 34240, 3, 2, 8, 1, 1, 1, 1, 2, 1, 2, 1, 1, 7, 4, 14, ...

For at visualisere data transformerer jeg det en smule. Koden kan læses som “for datasættet folk2 grupperer vi ved KØN, HERKOMST og TID - og for disse grupperinger summerer vi INDHOLD (som her er vores befolkning)” - dette ny datasæt gemmer vi som “folk2” .

folk2 <- 
  folk2 %>%  
  group_by(KØN, HERKOMST, TID) %>% 
  summarise(INDHOLD = sum(INDHOLD))

head(folk2)

Endelig laver jeg nogle søjlediagrammer, hvor x-aksen angiver tid, y-aksen angiver befolkningen, “fill”-aksen (farven på søjlerne) angiver køn og endelig opdeler vi graferne på herkomst, hvor vi lader y-aksen bestemmes af værdierne i de enkelte plot med scale-parameteren.

ggplot(data = folk2, aes(x = factor(TID), y = INDHOLD, fill = factor(KØN))) +
  geom_col(position = "dodge") + # position = "dodge" angiver at søjerne skal stå ved siden af hinanden.
  facet_wrap(~ HERKOMST, scale = "free_y", ncol = 2) 

Partnervirksomheder

Stort tak til alle virksomheder i ALT ANDET LIGEs partnerprogram. Hør mere om programmet, skriv til partner@altandetlige.dk