Brukerfilen finner du i hovedmappen til prosjektet/USER/Kvalitetskontroll_del1.Rmd Funksjonene ligger i R/functions_step1.R
Generelle tips
- Kvalitetskontrollen kan gjennomføres stegvis nedover i dokumentet ved å trykke på “play” i hver kodechunk (evt ved å plassere pekeren inni kodechunken og trykke Ctrl + Shift + Enter). Det står i hver kodechunk for hvordan input til funksjonen eventuelt kan endres ved behov.
- Kommentarer kan legges til i rapporten utenfor kodechunkene dersom det er ønskelig å ha disse med i rapporten. Bruk gjerne punktlister (* eller -). Det er også lagt opp til en kommentarliste øverst i filen.
Innlesing av filer
Ny og gammel fil leses inn med funksjonen ReadFiles()
og følgende argumenter.
- dfnew/dfold: Angi navn på ny og gammel fil som fullt filnavn med datotag.
- foldernew/folderold: Hvilke mapper skal de ulike filene leses fra. Aksepterer “QC”, “DATERT”, 4-sifret årstall for NESSTAR-mappene, eller komplett mappenavn som f.eks.
KH2024NESSTAR_pre2024_omkod2024GEO
. - modusnew/modusold: KH eller NH.
- recodeold/new: Settes til TRUE dersom filen skal omkodes til gjeldende GEO-koder.
Nyttig info:
- Skal du bare lese inn en fil (finnes ikke gammel), la de tre siste argumentene være NULL.
- Du vil varsles om ny fil inneholder TELLER, NEVNER, sumTELLER eller sumNEVNER, for å kunne ta stilling til om dette skal være med ut i publikasjon.
- Funksjonen vil automatisk endre navn på kolonnene “antall”, “Crude”, “Adjusted”, “sumteller”, “sumnevner”, “smr”, “FLx” og “utdanningsnivå”, du får beskjed om dette i output. og hvilke kolonner som finnes i hver av filene.
- Du kan manuelt gi nye kolonnenavn i neste kodechunk, med funksjonen
RenameColumns()
- Du kan manuelt gi nye kolonnenavn i neste kodechunk, med funksjonen
Noen flere inputparametre er nødvendig:
PROFILEYEAR
: styrer hvilken mappe rapporten lagres iGROUPdims
: Brukes for å gruppere ouput på ønskede strata. Dette gjelder funksjonene som sammenligner prikking i ny/gammel fil, og for sammenligning på tvers av geonivåer i den nye filen.CompareGEO
kan overstyre om funksjonene som sammenligner GEO-nivåer skal kjøres. Denne er som standard satt tilTRUE
, men kan settes tilFALSE
om du ikke vil kjøre disse funksjonene.
Sjekk av kolonner og dimensjoner
CompareCols()
sjekker om det er noen nye (ikke med i gammel fil) eller utgåtte (i gammel men ikke i ny fil) kolonner. Sjekker også om det er med uprikkede QC-kolonner (dersom du sjekker på QC-kube) CompareDims()
sjekker hvor mange nivåer det er i hver dimensjon i ny fil, og om det er kommet inn noen nye nivåer/tatt bort noen nivåer sammenlignet med gammel fil.
Sjekk av prikking
CheckPrikk()
sjekker om det er noen verdier under prikkegrensen. Prikkegrenser for teller- og nevnerprikking hentes fra ACCESS, og man trenger i utgangspunktet ikke å angi noen argumenter. For kuber kjørt utenfor systemet, som ikke finnes i ACCESS, kan man spesifisere tellerval/nevnerval
, samt tellerlimit/nevnerlimit
for å overstyre hvilke kolonner som sjekkes og hva grensene er. ComparePrikk()
oppsummerer antall rader med ulike SPVFLAGG i den nye og gamle filen, og gir absolutt og relativ forskjell. Grupperes på GROUPdims, angitt i input. ComparePrikkTS()
sjekker hvor mange tidsserier som inneholder 0 (komplette), 1, 2, …., max (serieprikket) antall prikker i tidsserien. Gir absolutt antall og som andel av totalt antall tidsserier.
Sammenligning av geonivåer
CompareXXXYYY()
summerer opp (sum)TELLER på ulike geonivåer, for å sjekke om Bydel summerer opp til Kommune, kommune til fylke og fylke til land, og om Oslo kommune og fylke er identiske. Output grupperes på dimensjonene angitt i GROUPdims i input.
- Funksjonene bruker sumTELLER_uprikk > sumTELLER > TELLER. Dersom ingen av disse er med i filen vil det ikke bli noe output.
- Funksjonene printer ut hvilken variabel som er sammenlignet, og en liste av alle GEO-koder som er inkludert i sammenligningen.
Sjekk av ukjent bydel
UnspecifiedBydel()
summerer opp (sum)TELLER og (sum)NEVNER for alle bydeler i en kommune og sammenligner dette mot kommunetallet. Forskjellen tilsvarer ‘ukjent bydel’. Er denne stor, kan det være grunn til å ikke vise bydelstall.
- Bruker sumTELLER_uprikk > sumTELLER > TELLER_uprikk > TELLER for å sammenligne teller
- Bruker sumNEVNER_uprikk > sumNEVNER > NEVNER_uprikk > NEVNER for å sammenligne nevner
- Argumentet
minteller_kommune
kan brukes for å filtrere bort de minste strataene, ved å sette et minimumsantall for kommunetelleren. - Argumentet
maxrows
kan brukes for å begrense størrelsen på output. Som standard er denne satt tilTRUE
, og begrenser output til maks 8000 rader (størst diff) fordelt på antallet tilgjengelige kommuner og antall variabler. Kan settes tilFALSE
for å printe alt, men tabellen vil da kunne bli stor og gjøre rapporten treg.
Tidsserier på landsnivå
PlotTimeSeries()
genererer, for hver dimensjon, en tidsserie på landsnivå med en linje per kategori i dimensjonen. Dette er nyttig for å avdekke systematisk feilkoding (linjene bytter plass).
- Alle dimensjoner utover den som plottes aggregeres til total dersom total ikke allerede eksistere (eks. KJONN == 0). For TELLER-kolonner aggregeres disse til totalsum, mens andre kolonner aggregeres til gjennomsnitt.
- Plottene lagres i et objekt som heter TS. For å vise plottene i RStudio, kan man derfor skrive ‘TS’ i konsollen.
- For å tilpasse plottestørrelsen til antallet paneler er denne sjekken delt i to funksjoner.
PrintTimeseries()
printer plottene og genererer overskrifter i rapporten.
Lagre rapport
SaveReport()
lagrer en HTML-rapport i riktig mappe angitt av PROFILEYEAR
i input. For å gjøre dette må man først:
- Laste inn filene, slik at man har dfnew i environment. Denne trengs for å lage riktig mappe.
- Lagre .Rmd-filen, da det er denne som kjøres fra disk, og alle inputparametre som brukes er de som er i den lagrede filen.
Det er viktig at alle de enkelte stegene i rapporten kjører uten problem, ellers vil rapporten ikke kunne genereres. Dersom en kodechunk ikke fungerer, og det ikke er noen løsning for å få den til å fungere, kan man som reserveløsning legge til eval = F som chunk setting, og denne vil da hoppes over.
- Dette vil da se slik ut: “
{r eval = F}
” -
Se eksempel på chunken med
SaveReport()
, som ikke skal evalueres under rapportgenereringen for å unngå at rapporten bare går i loop. - Dersom filnavnene blir for lange for Windows, kan argumentet
shortname
settes tilTRUE
. Da blir kubenavnet tatt ut av filnavnet, som da bare blir datotag. - Man kan også sette et eget navn på filen ved hjelp av argumentet
savename
, for eksempel savename = “testnavn”.