Omkode fra land til verdensregion
Eksempelet under demonstrerer hvordan man koder om en variabel som inneholder verdier på land-nivå til verdensregion-nivå. Landnivå blir i mange tilfeller for detaljert, og det kan da være nyttig å gruppere land etter SSBs standard for verdensregioner (https://www.ssb.no/klass/klassifikasjoner/91/varianter/1466).
Ved å bruke kommandoen destring
til å gjøre verdiene numeriske, kan en deretter benytte kommandoen recode
til å kode om verdiene. Recode gjør det blant annet mulig å kode om alle verdier i et intervall til en gitt verdi. Omkodingen foregår i sekvensielt fra venstre mot høyre i recode-uttrykket, noe som kan utnyttes til å forenkle om kodingen. I eksempelet nedenfor, vil f.eks. verdien 1 tilegnes alle land med koder i intervallene 101 – 141 og 144 – 158, bortsett fra dem som allerede er blitt gitt koden 2 i parentesen foran.
// Kobler til databank
require no.ssb.fdb:30 as db
create-dataset befolkning
import db/BEFOLKNING_STATUSKODE 2021-01-01 as statuskode
keep if statuskode == '1'
import db/BEFOLKNING_FODELAND as fødeland
tabulate fødeland
// Oppretter kopi av fødelandsvariabel for å kunne kontrollere omkodingen
clone-variables fødeland -> fødeland_orig
// Omkoder fødeland til verdensregion - bruker først destring for å gjøre formatet om til numerisk (kreves ved recode)
destring fødeland
recode fødeland \
(111 120 138 139 140 148 155 156 159/164 = 2) \
(101/141 144/158 = 1) \
(203/393 = 3) \
(143 404/578 = 4) \
(612 684 = 5) \
(601/775 = 6) \
(802/840 = 7) \
(980 = 8) \
(990 = 9)
define-labels vregion \
0 'Norge' \
1 'EU/EØS' \
2 'Europeiske land utenom EU' \
3 'Afrika' \
4 'Asia med Tyrkia' \
5 'Nord-Amerika' \
6 'Sør- og Mellom-Amerika' \
7 'Oseania' \
8 'Statsløse' \
9 'Uoppgitt'
assign-labels fødeland vregion
tabulate fødeland
tabulate fødeland_orig fødeland