CBS open data interface in R gebruiken (2)

We halen even snel de (laatste) bijstands- en werkloosheidsgegevens uit de CBS open data om dit plaatje te kunnen maken. w&b_2014_jul_30 De gegevensverwerking is als volgt:

source("open_feed_api_CBS.R")
source("../library/pretty.plot.R")

ww<-open_feed_api_CBS("37506wwm", new=FALSE) # uitkeringen werkloosheidswet
bs<-open_feed_api_CBS("37789ksz", new=FALSE) # uitkeringen bijstandswet
maand_bs<-bs[substr(bs$Perioden,5,6) == "MM",]

ww.m<-ww[ww$Geslacht=="0"
 & ww$Leeftijd=="0"
 & substr(ww$Perioden,5,6) == "MM"
 , c(24, 5)]
ww.ts<-ts(ww.m[,2]/1000, start=1998, freq=12)
ts.end<- end(ww.ts)[1] + (end(ww.ts)[2]-1)/12
bs.ts <- ts(maand_bs[,12], start=1998,freq=12)
bs.ts <- window(bs.ts, end=end(ww.ts))
all.ts<-ww.ts+bs.ts

De maand-, jaar- en kwartaalcoderingen zitten bij het CBS meestal allemaal door elkaar in één kolom. Hier wil ik de maandcodering hebben, met “MM” in positie 5 en 6 van het Perioden-veld. We nemen beide geslachten en alle leeftijden. De data zet ik in tijdreeksen. Als je er enige handigheid in hebt gekregen werkt het makkelijker dan de dataframes. Voor de plotjes zet ik de tijdreeksen weer om in een dataframe. Even het plaatje maken in een eigen thema:

pretty.plot(ts_to_df(bs.ts)
            , type="v"
            , kleur=4
            , lwd=2
            , ylim=c(150,900)
            , xlim=c(1998,ts.end)
            , xat = seq(1998,2014,2)
            , yat=c(200,400,600,800)
            , main=paste0("WW en bijstand vanaf 1998\nt/m ", tail(ww.m$Perioden_C,1))
            , source="Bron: Cbs Open Data Portal 2014"
            , ylab="duizenden"
            # , kab=1
            )
pretty.plot(ts_to_df(bs.ts), type="l", kleur=4, lwd=2, add=TRUE)
pretty.plot(ts_to_df(all.ts), type="v", kleur=3, lwd=2, add=TRUE)
pretty.plot(ts_to_df(all.ts), type="l", kleur=3, lwd=2, add=TRUE)
pretty.legend(kleur=c(3,4), lwd=3, 
              c("WW + bijstand (* 1000) ", "Bijstand (* 1000)")
)

Leave a Reply