3.3 Bruk av funksjoner
I tillegg til de vanlige matematiske operatorene
=
, +
, -
, /
, *
, (
, )
, ^
har en gjennom microdata.no tilgang på et stort antall funksjoner som
vil være til hjelp når en skal generere variabler. Et konkret eksempel er når en skal angi bosted på fylkesnivå. Siden bostedsinformasjon i
utgangspunktet angis som kommunenummer (= tosifret fylkesnummer +
tosifret tilleggsnummer som angir kommune) gjennom en firesifret
alfanumerisk variabel, må en benytte funksjonen substr()
for å hente ut de to første sifrene som angir fylke:
generate fylke = substr(bosted,1,2)
Sifrene 1 og 2 inni funksjonen angir hhv. startposisjon for verdien som skal leses inn og antall posisjoner som skal leses. Kommunen Bergen har verdien '1201'. Å trekke ut de 2 første sifrene vil generere fylkesverdien for Hordaland som er '12'.
Et annet typisk bruksområde for funksjonen substr()
er når en skal hente ut utdanningsnivå på et grovere aggregeringsnivå enn den totale 6-sifrede kodingen. Det er vanlig å bruke en inndeling på 1-sifret eller 2-sifret nivå. Da er denne funksjonen et nyttig hjelpemiddel.
Andre sentrale funksjoner er round()
og int()
evt. floor()
. Disse er nyttige om en skal gjøre om fra desimaltall til heltall eller trekke ut delverdier fra en større tallverdi. round()
avrunder desimaltall på vanlig måte, mens int()
og floor()
avrunder nedover. Om en f.eks. ønsker å hente ut fødselsåret fra den numeriske variabelen faarmnd
(år og måned på formen YYYYMM), kan dette gjøres på følgende måte:
generate faar = int( faarmnd / 100)
I denne operasjonen dividerer vi på 100 og beholder heltallet (samme som å avrunde nedover). Dette vil i praksis trekke ut de fire første sifrene fra en numerisk 6-sifret verdi. For verdien 201006 vil en altså hente ut verdien 2010. Dette kan brukes til å generere alder ut i fra fødselsdato:
generate alder = 2013 - int( faarmnd / 100)
Resultatet vil gi alder for samtlige individer i datasett målt per 2013. Om fødselsdato er oppgitt med 8 siffer (YYYYMMDD), må en justere formelen for å få samme resultat:
generate alder = 2013 - int( faarmnd / 10000)
I vedlegg B presenteres en fullstendig liste over tilgjengelige
funksjoner. Merk at disse stiller krav til hvilke typer variabler de
brukes på. F.eks. kan funksjonen substr()
kun brukes på alfanumeriske variabler.
[Eksempler på tilrettelegging av variabler, deriblant bruk av funksjoner](docs\eksempel\Grunnleggende operasjoner\Tilrettelegge variabler - dummy- og flerkategorivariabler - funksjoner - labler.md)
[Eksempler på bruk av funksjoner for individuelle variabelberegninger](docs\eksempel\Sammensatte operasjoner\Bruke funksjoner for variabelberegninger.md)