Valider valideringsdatasett
Source:R/er_valideringsdatasett_gyldig.R
er_valideringsdatasett_gyldig.RdTek inn eit valideringsdatasett og returnerer TRUE eller FALSE dersom
det er høvesvis gyldig eller ugyldig.
Details
Eit gyldig valideringsdatasett består av éin eller fleire
indeksvariablar, variablane vld_varnamn og vld_vartype og
to eller fleire verdivariablar.
Eksempel på indeksvariablar er pasient- og/eller forløps-ID pluss ekstra
metadata som kjønn, sjukehus og operasjonstype. Saman med vld_varnamn
skal indeksvariablane unikt identifisera ei rad (observasjonen som skal
validerast).
Variabelen vld_varnamn inneheld namnet på variabelen som rada
inneheld valideringsdata for, mens vld_vartype seier kva
type variabel det er, for eksempel tal, tekst eller dato.
Ein kan fritt velja kva verdiar ein brukar for vld_vartype
(for eksempel "tal", "tall", "heiltal" eller "int32"),
men verdien må starta med ein bokstav og berre innehalda
bokstavar, understrek og/eller siffer.
For kvar unike vld_vartype skal det finnast verdivariablar –
variablar med prefiksa vld_verdi_intern_ og vld_verdi_ekstern_.
Viss for eksempel ein vld_vartype er "tal", skal det finnast
verdivariablar vld_verdi_intern_tal og vld_verdi_ekstern_tal.
Den første seier kva verdi variabelen i vld_varnamn har i den
interne kjelda, som typisk er eit kvalitetsregister, og den
andre seier kva verdi han har i den eksterne kjelda, som typisk
er ein pasientjournal eller eit anna fagsystem. Dei to variablane
skal naturlegvis ha tilsvarande variabeltype som vld_vartype,
for "tal" for eksempel' double eller integer.
Det skal ikkje finnast andre kolonnar som startar med vld_ enn
dei som er nemnde ovanfor (vld_ er eit reservert prefiks).
Examples
library(tibble)
# Eksempel på gyldig valideringsdatasett med to ulike variabeltypar,
# "tal" («double») og "logisk" («logical»). Merk at variabelen «vekt»
# har to verdiar for same pasient, men det er OK, sidan det var på to
# ulike operasjonsdatoar.
d_vld_gyldig = tibble(
pasient_id = c(5, 5, 5, 7),
dato_operasjon = as.Date(c("2020-06-07", "2020-12-13", "2020-12-13", "2021-02-05")),
kjonn = c("mann", "mann", "mann", "kvinne"),
sjukehus = c("Bergen", "Bergen", "Førde", "Stavanger"),
vld_varnamn = c("vekt", "vekt", "diabetes", "diabetes"),
vld_vartype = c("tal", "tal", "logisk", "logisk"),
vld_verdi_intern_tal = c(78, 88, NA, NA),
vld_verdi_ekstern_tal = c(78, 90, NA, NA),
vld_verdi_intern_logisk = c(NA, NA, TRUE, FALSE),
vld_verdi_ekstern_logisk = c(NA, NA, TRUE, NA)
)
er_valideringsdatasett_gyldig(d_vld_gyldig) # TRUE
#> [1] TRUE
# Eksempel på ugyldig valideringsdatasett, der indeksvariablane
# pluss «vld_varnamn» ikkje unikt identifiserer ei rad.
d_vld_ugyldig = d_vld_gyldig
d_vld_ugyldig$dato_operasjon[2] = d_vld_ugyldig$dato_operasjon[1]
er_valideringsdatasett_gyldig(d_vld_ugyldig) # FALSE
#> [1] FALSE