Uttrekk fra Dynarev til R
Sindre Mikael Haugen
2024-12-02
vignette_dynarev_uttrekk.Rmd
Funksjonen dynarev_uttrekk
henter inn data fra Dynarev
til R så lenge man oppgir delregisternummer og skjemanavn. Det er kun
enheter som er satt som aktive (AKTIV = 1) som blir lastet ned. Det er
mulig å hente skjemadata (variablene i selve skjemaet) og SFU-data
(enhetsinformasjon). Man kan også gjennomføre dublettsjekker og velge
mellom reviderte data og rådata.
Funksjonen finnes i pakken fellesr og er installert i RStudio (Windows og Linux) og Jupyterlab i produksjonssonen.
Parametre
dynarev_uttrekk(
delregnr,
skjema = T,
enhets_type = c("FRTK", "BEDR"),
skjema_cols = T,
sfu_cols = F,
skjema_sfu_merge = F,
dublettsjekk = F,
con_ask = T,
raadata = F
)
delregnr
: Numerisk vektor med delregisternummer. skjema
: Boolsk/karaktervektor med skjemanavn. Hvis TRUE
returneres alle skjema i valgt delregister. enhets_type
: Karaktervektor med enhetstype (f.eks. BEDR
og/eller FRTK). skjema_cols
: Boolsk/karaktervektor.
Hvis TRUE henter man alle variabler fra skjema. Hvis FALSE henter man
ikke skjemadata, kun SFU-data (hvis sfu_cols
= TRUE). Det
er også mulig å lage en vektor/liste av variabelnavn, f.eks.
c(“variabel1”, “variabel2”), dersom man kun vil ha utvalgte variabler
fra skjema. sfu_cols
: Boolsk/karaktervektor. Hvis
TRUE blir alle variabler fra SFU for valgt delregister og skjema
inkludert. For å kun velge én eller flere variabler fra SFU skrives
disse i en vektor/liste, f.eks. c(“variabel1”, “variabel2”). skjema_sfu_merge
: Boolsk. Hvis TRUE blir skjemadataene og
SFU-dataene merget. Dersom FALSE blir dataene hentet som to separate
datasett i en liste; [1] skjemadata og [2] SFU-data. dublettsjekk
: Boolsk/karaktervektor. Hvis TRUE sjekkes det
for dubletter i skjemadata etter ENHETS_ID. Dersom man ønsker å sjekke
for dubletter etter én eller flere selvvalgte variabler skrives disse i
en vektor, f.eks. c(“variabel1”, “variabel2”). Liste med to datasett
returneres; [1] skjemadata og [2] dublettdata (dersom det finnes
dubletter, hvis ikke er denne blank). con_ask
:
Boolsk/karaktervektor. Hvis TRUE får man opp en boks som spør etter
Oracle-passord. Hvis FALSE spørres det ikke om passord. Ved å skrive
dynarev_uttrekk(con_ask = "con")
får man opp en boks som
spør etter Oracle-passord og kun koblingen mot Oracle blir returnert
(ikke data). Denne kan brukes dersom man skal lese inn flere skjema
etter hverandre for å unngå å skrive inn passordet flere ganger. raadata
: Boolsk. Hvis FALSE returneres reviderte data (fra
FELT_VERDI), TRUE returnerer rådata.
Eksempler
Under følger en rekke eksempler på hvordan man bruker funksjonen
dynarev_uttrekk
.
Alle kolonner fra valgt skjema
Her får man lastet inn alle kolonnene fra valgt skjema.
dynarev <- dynarev_uttrekk(delregnr = 2421,
skjema = "HELSE41",
skjema_cols = T)
Utvalgte kolonner fra valgt skjema
Her får man lastet ned utvalgte kolonner fra valgt skjema. Her er kolonnene AARGANG, FORETAKETS_NAVN og FORETAKETS_ORGNR valgt.
dynarev <- dynarev_uttrekk(delregnr = 2421,
skjema = "HELSE41",
skjema_cols = c("AARGANG", "FORETAKETS_NAVN", "FORETAKETS_ORGNR"))
Alle SFU-kolonner fra valgt skjema
Her får man lastet ned alle kolonnene med SFU-data fra valgt skjema.
dynarev <- dynarev_uttrekk(delregnr = 2421,
skjema = "HELSE41",
skjema_cols = F,
sfu_cols = T)
Utvalgte SFU-kolonner fra valgt skjema
Her får man lastet ned utvalgte kolonner med SFU-data fra valgt skjema. Her er kolonnene NAVN og ORGNR valgt.
dynarev <- dynarev_uttrekk(delregnr = 2421,
skjema = "HELSE41",
skjema_cols = F,
sfu_cols = c("NAVN", "ORGNR"))
Alle SFU-kolonner fra alle skjemaer
Her får man lastet ned alle kolonnene med SFU-data fra alle skjema i
valgt delregister. Dersom man kun ønsker utvalgte variabler fra SFU-data
erstattes sfu_cols = T
med
sfu_cols = c("variabel1", "variabel2")
.
dynarev <- dynarev_uttrekk(delregnr = 2421,
skjema = T,
skjema_cols = F,
sfu_cols = T)
Alle kolonner fra valgt skjema og alle SFU-kolonner
Her får man lastet ned både skjemadata (alle kolonner) og SFU-data
(alle kolonner) fra valgt delregister. Objektet dynarev inneholder her
altså to datasett. For å få hentet ut skjemadata skriver man
dynarev_skjema <- data.frame(dynarev[1])
og for å hente
ut SFU-data skriver man
dynarev_sfu <- data.frame(dynarev[2])
.
dynarev <- dynarev_uttrekk(delregnr = 2421,
skjema = "HELSE41",
skjema_cols = T,
sfu_cols = T)
dynarev_skjema <- data.frame(dynarev[1])
dynarev_sfu <- data.frame(dynarev[2])
Alle kolonner fra valgt skjema og utvalgte SFU-kolonner
Her får man lastet ned både skjemadata (alle kolonner) og SFU-data
(utvalgte kolonner, her NAVN og ORGNR) fra valgt delregister. Objektet
dynarev inneholder her altså to datasett. For å få hentet ut skjemadata
skriver man dynarev_skjema <- data.frame(dynarev[1])
og
for å hente ut SFU-data skriver man
dynarev_sfu <- data.frame(dynarev[2])
.
dynarev <- dynarev_uttrekk(delregnr = 2421,
skjema = "HELSE41",
skjema_cols = T,
sfu_cols = c("NAVN", "ORGNR"))
dynarev_skjema <- data.frame(dynarev[1])
dynarev_sfu <- data.frame(dynarev[2])
Utvalgte kolonner fra valgt skjema og utvalgte SFU-kolonner
Her får man lastet ned både skjemadata (utvalgte kolonner, her
AARGANG, FORETAKETS_NAVN og FORETAKETS_ORGNR) og SFU-data (utvalgte
kolonner, her NAVN og ORGNR) fra valgt delregister. Objektet dynarev
inneholder her altså to datasett. For å få hentet ut skjemadata skriver
man dynarev_skjema <- data.frame(dynarev[1])
og for å
hente ut SFU-data skriver man
dynarev_sfu <- data.frame(dynarev[2])
.
dynarev <- dynarev_uttrekk(delregnr = 2421,
skjema = "HELSE41",
skjema_cols = c("AARGANG", "FORETAKETS_NAVN", "FORETAKETS_ORGNR"),
sfu_cols = c("NAVN", "ORGNR"))
dynarev_skjema <- data.frame(dynarev[1])
dynarev_sfu <- data.frame(dynarev[2])
Alle kolonner fra valgt skjema og alle SFU-kolonner (koblet sammen)
Her får man lastet ned både skjemadata (alle kolonner) og SFU-data (alle kolonner) fra valgt delregister. SFU-dataene blir koblet på skjemadataene slik at man kun får én fil.
dynarev <- dynarev_uttrekk(delregnr = 2421,
skjema = "HELSE41",
skjema_cols = T,
sfu_cols = T,
skjema_sfu_merge = T)
Alle kolonner fra valgt skjema og utvalgte SFU-kolonner (koblet sammen)
Her får man lastet ned både skjemadata (alle kolonner) og SFU-data (utvalgte kolonner, her NAVN og ORGNR) fra valgt delregister. SFU-dataene blir koblet på skjemadataene slik at man kun får én fil.
dynarev <- dynarev_uttrekk(delregnr = 2421,
skjema = "HELSE41",
skjema_cols = T,
sfu_cols = c("NAVN", "ORGNR"),
skjema_sfu_merge = T)
Utvalgte kolonner fra valgt skjema og utvalgte SFU-kolonner (koblet sammen)
Her får man lastet ned både skjemadata (utvalgte kolonner, her AARGANG, FORETAKETS_NAVN og FORETAKETS_ORGNR) og SFU-data (utvalgte kolonner, her NAVN og ORGNR) fra valgt delregister. SFU-dataene blir koblet på skjemadataene slik at man kun får én fil.
dynarev <- dynarev_uttrekk(delregnr = 2421,
skjema = "HELSE41",
skjema_cols = c("AARGANG", "FORETAKETS_NAVN", "FORETAKETS_ORGNR"),
sfu_cols = c("NAVN", "ORGNR"),
skjema_sfu_merge = T)
Dublettsjekk etter ENHETS_ID
Her får man testet for dubletter (etter ENHETS_ID) i skjemadata. Liste med to datasett returneres; [1] skjemadata og [2] dublettdata (dersom det finnes dubletter, hvis ikke er denne blank).
dynarev <- dynarev_uttrekk(delregnr = 2421,
skjema = "HELSE39",
dublettsjekk = T)
dynarev_skjema <- data.frame(dynarev[1])
dynarev_dubletter <- data.frame(dynarev[2])
Dublettsjekk etter egenvalgte variabler
Dersom man ønsker å sjekke for dubletter etter én eller flere
selvvalgte variabler skrives disse i en vektor, f.eks.
dublettsjekk = c("variabel1", "variabel2")
.
dynarev <- dynarev_uttrekk(delregnr = 2421,
skjema = "HELSE0X",
dublettsjekk = c("FORETAKSNR", "ART_SEKTOR", "FUNKSJON_KAPITTEL"))
dynarev_skjema <- data.frame(dynarev[1])
dynarev_dubletter <- data.frame(dynarev[2])
Laste inn flere skjema uten å skive passord
For å slippe å oppgi passord flere ganger når man skal laste inn
flere skjema kan man skrive con_ask = FALSE. For at dette skal fungere
må man logge på først øverst i scriptet:
con <- dynarev_uttrekk(con_ask = "con")
con <- dynarev_uttrekk(con_ask = "con")
dynarev_1 <- dynarev_uttrekk(delregnr = 2421,
skjema = "HELSE41",
skjema_cols = T,
con_ask = F)
dynarev_2 <- dynarev_uttrekk(delregnr = 2421,
skjema = "HELSE46P",
skjema_cols = T,
con_ask = F)
dynarev_3 <- dynarev_uttrekk(delregnr = 2421,
skjema = "HELSE39",
skjema_cols = T,
con_ask = F)
Laste inn flere skjema fra samme delreg i samme fil
For å laste inn data fra flere skjemaer i samme fil skriver man
skjemanavnene i en karaktervektor i argumentet skjema
. Her
er skjemaene HELSE38P, HELSE39 og HELSE44P valgt.
dynarev <- dynarev_uttrekk(delregnr = 2421,
skjema = c("HELSE38P", "HELSE39", "HELSE44P"),
skjema_cols = c("FORETAKETS_NAVN", "FORETAKETS_ORGNR", "HELSEREGION_EPOST", "HELSEREGION_NAVN"))
Laste inn alle skjema fra delreg i samme fil
For å laste inn alle skjema fra samme delregister i samme fil skriver
man skjema = T
. Under enhets_type må man samtidig skrive
inn alle enhetstypene som finnes i det valgte delregisteret (f.eks. BEDR
og FRTK).
OBS: dette uttrekket kan føre til en veldig stor fil med mange rader og kolonner så det kan være lurt å spesifisere hvilke variabler man ønsker å hente ut.
dynarev <- dynarev_uttrekk(delregnr = 2421,
skjema = T,
skjema_cols = T,
sfu_cols = F)
Laste inn sfu-data fra flere skjema fra delreg i samme fil
Her lastes det inn SFU-data fra flere skjema (fra samme delregister).
dynarev <- dynarev_uttrekk(delregnr = 2421,
skjema = c("HELSE38P", "HELSE39", "HELSE44P"),
skjema_cols = F,
sfu_cols = T)
Laste inn rådata
Her lastes det inn rådata fra de aktive enhetene i valgt skjema/valgte skjemaer.
dynarev <- dynarev_uttrekk(delregnr = 2421,
skjema = T,
skjema_cols = T,
raadata = T)