KostraRegnskap: KostraRegnskap

View source: R/KostraRegnskap.R

KostraRegnskapBeregningR Documentation

KostraRegnskap

Description

KostraRegnskap er en wrapper til funksjonen KostraRegnskapEnPeriode som, ved flere perioder, blir kalt flere ganger. I output-kolonnen regnskapsomfang betyr A konsern og B kasse.

Usage

KostraRegnskapBeregning(
  data,
  funksjonshierarki,
  artshierarki,
  data_saer,
  artshierarki_nettinger,
  artshierarki_nettinger_kasse,
  formler = NULL,
  funksjoner,
  arter,
  kontoklasser,
  ...,
  perioder = NULL,
  output
)

KostraRegnskapBeregningInput(...)

KostraRegnskapBeregningHierarkiALT(...)

KostraRegnskapBeregningHierarki(...)

KostraRegnskapBeregningHierarkiInput(...)

KostraRegnskap(
  data,
  funksjonshierarki,
  artshierarki,
  data_saer = NULL,
  artshierarki_nettinger = NULL,
  artshierarki_nettinger_kasse = NULL,
  stjernetabell = NULL,
  formler = NULL,
  ...,
  perioder = NULL
)

KostraRegnskapEnPeriode(
  data,
  funksjonshierarki,
  artshierarki,
  data_saer = NULL,
  artshierarki_nettinger = NULL,
  artshierarki_nettinger_kasse = NULL,
  kombinasjoner = NULL,
  regioner = NULL,
  storkombinasjoner = NULL,
  stjernetabell = NULL,
  funksjoner = NULL,
  arter = NULL,
  kontoklasser = NULL,
  regnskapsomfang = NULL,
  output = "en",
  printInfo = TRUE,
  printData = TRUE,
  lag0300 = FALSE,
  formler = NULL,
  autoNetting = TRUE,
  useMatrixToDataFrame = TRUE,
  returnFormelData = FALSE,
  smartB = TRUE,
  fixRegionkode = TRUE,
  fixArtkode = TRUE,
  fixFunksjonkode = TRUE,
  autoFormel = TRUE
)

Arguments

data

inputdata

funksjonshierarki

funksjonshierarki

artshierarki

artshierarki

data_saer

inputdata for særbedrifter

artshierarki_nettinger

artshierarki for særbedrift-nettinger

artshierarki_nettinger_kasse

artshierarki for kasse-nettinger

formler

data frame med formler som brukes til korreksjoner

funksjoner

funksjoner som skal med i output. Man kan også bruke *, ?, ! og – tilsvarende som for regioner (se nedenfor).

arter

arter som skal med i output. Man kan også bruke *, ?, ! og – tilsvarende som for regioner (se nedenfor).

kontoklasser

kontoklasser som skal med i output. Det er mulig å bruke * istedenfor NULL til å velge alle kontoklosser.

...

Parametere som sendes videre til KostraRegnskapEnPeriode

perioder

Perioder for beregningen. Ved NULL (default) brukes alle perioder som finnes i data.

output

"en" (default), "fire" (men det bør endres til "fem"...), "enFactor", "fireFactor" "storkombinasjoner", "hierarkier" eller "barePrintData". Ved "fire" blir output et datasett med fire beløpskolonner: kasse, særbedrift, nettinger, konsern. Variantene med Factor gir outputdata med factor istedenfor character. Ved "hierarkier" returneres utflatede hierarkier. Sign for nettinghierarkiet er i kolonnen netting. Dette hierarkiet er omskrevet til å ta vanlige data som input. Ved "barePrintData" stopper funksjonen etter at input er printet (printData=TRUE).

stjernetabell

tabell med * og ? som definerer koder som skal med i output

kombinasjoner

kombinasjoner av art, funksjon, kontoklasse som skal med i output

regioner

regioner som skal med i output. Kan også settet til et tall eller gjøre bruk av *, ?, ! og – (se nedenfor).

storkombinasjoner

kombinasjoner av art, funksjon, kontoklasse og region

regnskapsomfang

regnskapsomfang som skal med i output. Det er mulig å bruke * og ? istedenfor NULL til å velge begge regnskapsomfang.

printInfo

Ved TRUE printes informasjon om generering av kombinasjoner fra stjernetabell samt informasjon om omskriving av formler.

printData

Ved TRUE printes to første og to siste rader av alle inputdataene

lag0300

Ved TRUE kopieres region 0301 til 0300 i inputdata

autoNetting

Ved TRUE (default) utvides nettinghierarkiene automatisk basert på from-koden COPY

useMatrixToDataFrame

Ved TRUE (default) brukes spesiell funksjonalitet (MatrixToDataFrame og DataFrameToMatrix) som sparer tid og minne.

returnFormelData

Ved TRUE returneres spesielt datasett med informasjon om formelberegninger (denne parameteren vil bli tatt bort og erstattet av nye output koder som kan brukes)

smartB

Ved TRUE (default) og ved valg av ett regnskapsomfang velges en metode som sparer tid og minne. Istedenfor å plukke ut regnskapsomfang til slutt gjøres kun de beregninger som trengs. Spesielt ved valg av regnskapsomfang B kan data_saer og/eller artshierarki_nettinger sløyfes.

fixRegionkode

Ved TRUE (default): Sørger for blanke i starten/slutten fjernes og at regionkoder får 4 eller 6 plasser og ledende nuller (gir warning ved endring av input)

fixArtkode

Ved TRUE (default): Sørger for blanke i starten/slutten fjernes og at artskoder som er tall får 3 plasser og ledende nuller (gir warning ved endring av input)

fixFunksjonkode

Ved TRUE (default): Sørger for blanke i starten/slutten fjernes og at funksjonskoder som er tall får 3 plasser og ledende nuller (gir warning ved endring av input)

autoFormel

Ved TRUE (default) kan formlene avhenge av hverandre. Ved TRUE kan formlene avhenge av hverandre. Formlene vil bli korrigert ved hjelp av funksjonen AutoFormel.

Details

Regioner kan settes til et tall. F.eks regioner=5 betyr at de 5 første regionene i data velges. Det kan også gjøres utvalg fra regionene i data ved bruk av *, ?, ! og –. Her brukes ! til å invertere enkeltvalg, mens – brukes til fjerning fra det samlede utvalget. Det betyr at bruk av – tilsvarer sign i stjernetabell. Spesielt kan man velge alle fylker (regioner = "??00"), alle bydeler (regioner = "??????") eller alle kommuner (regioner = c("????","-??00")).

Value

En data frame

Note

KostraRegnskapBeregningInput og KostraRegnskapBeregningHierarki går via funksjonen KostraRegnskapBeregning. Parametere til den funksjonen trengs bortsett fra «output». Spesielt må altså parameterne funksjoner, arter, kontoklasser med. Det skal (i utgangspunktet) være en verdi på hver av disse. Funksjonen KostraRegnskapBeregningHierarkiALT er alternativ til KostraRegnskapBeregningHierarki med andre variabler i output.

See Also

HierarchyCompute, HierarchicalWildcardGlobbing

Examples


 #==========================================================================
 #     Innlesing av data og omkoding
 #===========================================================================
# Når lesDataFraS er TRUE kjøres eksempelkoden omtrent slik den var under utvikling av koden.
# Ved FALSE brukes data som ligger i pakken der bare noen regioner er med, men det kjøres da
# på to år samtidig. Kommentarer i koden om beregningstid og antall rader vil ikke stemme.
lesDataFraS <- FALSE
if (!lesDataFraS){
  kData = KostraData("kostraRegnskapDataPen")       # KostraData("kostraRegnskapData") er alternativ der
  inputdata <- kData$data                           #    automatisk omkoding trengs (som fixRegionkode)
  funksjonshierarki <- kData$funksjonshierarki      #    Fungerer like bra, men med flere warning
  artshierarki <- kData$artshierarki
  inputdata_saer <- kData$data_saer
  artshierarki_nettinger <- kData$artshierarki_nettinger
  artshierarki_nettinger_kasse <- kData$artshierarki_nettinger_kasse
  stjerne <- kData$stjernetabell
  formler <- kData$formler
} else {

dataPath <- "S:/Prosjekt/2228 KOSTRA publisering/Metode/Regnskap/Matrise-klare filer"
#dataPath <- "C:\Users\oyl\Documents\work\Rworking\regnskap\Matrise-klare filer"

aar = "2016" # "2015" kan også velges

dataPath <- paste(dataPath,aar,sep="/")

funksjonFil     <- paste(dataPath,"/Funksjonshierarki_",aar,".csv",sep="")
artFil          <- paste(dataPath,"/Artshierarki_",aar,".csv",sep="")
artFilnett      <- paste(dataPath,"/Artshierarki_nettinger_s\U00E6rbedrift_",aar,".csv",sep="")
artFilnettKasse      <- paste(dataPath,"/Artshierarki_nettinger_kasse_",aar,".csv",sep="")

dataFil         <- paste(dataPath,"/Inputdata_fylker_kommuner_bydeler_",aar,".csv",sep="")
dataFilsaer     <- paste(dataPath,"/Inputdata_s\U00E6rbedrifter_",aar,".csv",sep="")

kombinasjonerFil <- paste(dataPath,"/../../Alle kombinasjoner vi trenger som output.csv",sep="")
stjerneFil       <- paste(dataPath,"/StjerneKombinasjoner_",aar,".csv",sep="")
formelFil       <- paste(dataPath,"/Formler_",aar,".csv",sep="")

funksjonshierarki      <- read.csv2(funksjonFil,colClasses=c("integer","character","character","character"))
artshierarki           <-  read.csv2(artFil,colClasses=c("integer","character","character","character"))
artshierarki_nettinger <-  read.csv2(artFilnett,colClasses=c("integer","character","character","character"))
artshierarki_nettinger_kasse <-  read.csv2(artFilnettKasse,colClasses=c("integer","character","character","character"))

inputdata              <-  read.csv2(dataFil,colClasses=c("integer","character","character","character","character","integer"))
inputdata_saer <-  read.csv2(dataFilsaer,colClasses=c("integer","character","character","character","character","integer"))

stjerne    <- read.csv2(stjerneFil,colClasses="character")
formler   <- read.csv2(formelFil,colClasses="character")

# Endrer navn i data fra fylkesregion til region
names(inputdata)[names(inputdata)=="fylkesregion"] <- "region"
names(inputdata_saer)[names(inputdata_saer)=="fylkesregion"] <- "region"
names(stjerne)[names(stjerne)=="fylkesregion"] <- "region"

# Leser kombinasjoner og omkoder
kombinasjoner <- read.csv2(kombinasjonerFil,colClasses="character")
kombinasjonerD  <- kombinasjoner$kontoklasse %in% c("1","3")
kombinasjoner$kontoklasse <- "I"
kombinasjoner$kontoklasse[kombinasjonerD] <- "D"
kombinasjoner <- unique(kombinasjoner) #  25312 kombinasjoner av funksjon, art og kontoklasse


# Legger til manglende ledende 0-er
inputdata$region = FixRegionkode(inputdata$region)
inputdata_saer$region = FixRegionkode(inputdata_saer$region)
}

 #==========================================================================
 #   Eksempler med:   Konsern  = Saebedrift + Nettinger + Kasse
 #===========================================================================

# Med stjernetabell. Denne gir 28215120 rader. [Beregningstid: 1 minutt]
# MERK: Denne kan krasje ved lite tilgjengelig minne som ved 32 bit versjon av R
z <- KostraRegnskap(inputdata, funksjonshierarki, artshierarki, inputdata_saer, artshierarki_nettinger, stjernetabell = stjerne)

if(!lesDataFraS)
   kombinasjoner <- unique(z[, c("art", "funksjon", "kontoklasse")])

rm(z) # sletter z frigjoer minne

# Med kombinasjoner. Denne gir 23388288 rader. [Beregningstid: 15 sek] (25312 kombinasjoner * 462 regioner * 2 regnskapsomfang)
z <- KostraRegnskap(inputdata, funksjonshierarki, artshierarki, inputdata_saer, artshierarki_nettinger, kombinasjoner = kombinasjoner)

# plukker ut 12 rader og fjerner radnavn
z12a <- z[z$region %in% c("0101", "0100", "0301") & z$funksjon %in% c("100", "FG2") & z$art %in% c("AGI6", "AGD10"), ]
rownames(z12a) <- NULL

rm(z) # sletter z frigjoer minne

# Samme svar kan beregnes mer direkte
z12b <- KostraRegnskap(inputdata, funksjonshierarki, artshierarki, inputdata_saer, artshierarki_nettinger, kombinasjoner = kombinasjoner, regioner = c("0101", "0100", "0301"), funksjoner = c("100", "FG2"), arter = c("AGI6", "AGD10"))
identical(z12a, z12b)  # Gir TRUE


# Uten kombinasjoner i input blir det 48 rader i output (2 regnskapsomfang) X (3 regioner) X (2 funksjoner) X (2 arter) X (2 kontoklasser)
z48 <- KostraRegnskap(inputdata, funksjonshierarki, artshierarki, inputdata_saer, artshierarki_nettinger, regioner = c("0101", "0100", "0301"), funksjoner = c("100", "FG2"), arter = c("AGI6", "AGD10"))

# Varianten med factor-output krever mindre minne. Denne forandringen gir ingen forskjell for resultat skrevet til csv-fil.
z <- KostraRegnskap(inputdata, funksjonshierarki, artshierarki, inputdata_saer, artshierarki_nettinger, stjernetabell = stjerne, output = "enFactor")

# plukker ut 24 rader og fjerner radnavn
z24a <- z[z$region %in% c("0101", "0100", "0301") & z$funksjon %in% c("100", "FG2") & z$art %in% c("AGI6", "AGD10"), ]
rownames(z24a) <- NULL

# Samme svar kan beregnes mer direkte [Beregningstid: 1 sekund]
z24b <- KostraRegnskap(inputdata, funksjonshierarki, artshierarki, inputdata_saer, artshierarki_nettinger, stjernetabell = stjerne, regioner = c("0101", "0100", "0301"), funksjoner = c("100", "FG2"), arter = c("AGI6", "AGD10"))
# z24a og z24b er ikke identiske pga ulik ordning av rader

rm(z) # sletter z frigjoer minne

# Med stjernetabell og formler. Bare Oslo og Akershus, funksjon FG1 FG2 FG4 og arter som starter med AGD.
z <- KostraRegnskap(inputdata, funksjonshierarki, artshierarki, inputdata_saer, artshierarki_nettinger, stjernetabell = stjerne, regioner = c("02??","03??") , formler = formler, funksjoner = "FG?", arter = "AGD*")


# Kombinerer stjernetabell og kombinasjoner. Denne gir 14360352 rader. [Beregningstid: 1 minutt] MERK: igjen kreves minne
z <- KostraRegnskap(inputdata, funksjonshierarki, artshierarki, inputdata_saer, artshierarki_nettinger, kombinasjoner = kombinasjoner, stjernetabell = stjerne)

# Lite eksempel med output = "en" (som default)
KostraRegnskap(inputdata, funksjonshierarki, artshierarki, inputdata_saer, artshierarki_nettinger, regioner = "0101", funksjoner = "FG2", arter = "AGD10")

# Samme eksempel med output = "fire"
KostraRegnskap(inputdata, funksjonshierarki, artshierarki, inputdata_saer, artshierarki_nettinger, regioner = "0101", funksjoner = "FG2", arter = "AGD10", output = "fire")

 #===============================================================================
 #   Eksempler med:   Konsern  = Saebedrift + Nettinger + Kasse + Kassenettinger
 #===============================================================================


   zEn   <- KostraRegnskap(inputdata,funksjonshierarki,artshierarki,inputdata_saer,artshierarki_nettinger,artshierarki_nettinger_kasse,stjernetabell=stjerne,regioner = c("0101", "0100",  "0301"),formler=formler)

   zFem  <- KostraRegnskap(inputdata,funksjonshierarki,artshierarki,inputdata_saer,artshierarki_nettinger,artshierarki_nettinger_kasse,stjernetabell=stjerne,regioner = c("0101", "0100",  "0301"),output="fire",formler=formler)


 # ==========================================================================
 #   Gamle eksempler uten data_saer og artshierarki_nettinger
 #===========================================================================

if (!lesDataFraS){
  dat <- kData$data
  datS <- kData$data_saer
  dat$kontoklasse <- CharacterReCode(dat$kontoklasse, c("D", "I"), c("1", "2"))
  datS$kontoklasse <- CharacterReCode(datS$kontoklasse, c("D", "I"), c("3", "4"))
  inputdata <- rbind(dat, datS)
  funksjonshierarki <- kData$funksjonshierarki
  artshierarki <- kData$artshierarki
  z <- KostraRegnskap(inputdata,funksjonshierarki,artshierarki)
  kombinasjoner <- unique(z[, c("art", "funksjon", "kontoklasse")])
} else {
dataPath <- "S:/Prosjekt/2228 KOSTRA publisering/Metode/Regnskap"
#dataPath <- "C:\Users\oyl\Documents\work\Rworking\regnskap"

funksjonFil <- paste(dataPath,"Funksjonshierarki.csv",sep="/")
artFil      <- paste(dataPath,"Artshierarki_uten_nettinger.csv",sep="/")
dataFil     <- paste(dataPath,"Inputdata_kommuner_fylker_2016.csv",sep="/")
kombinasjonerFil <- paste(dataPath,"Alle kombinasjoner vi trenger som output.csv",sep="/")

funksjonshierarki <- read.csv2(funksjonFil,colClasses=c("integer","character","character","character"))
artshierarki <-  read.csv2(artFil,colClasses=c("integer","character","character","character","integer"))
inputdata <-  read.csv2(dataFil,colClasses=c("integer","character","character","character","character","integer"))
kombinasjoner <- read.csv2(kombinasjonerFil,colClasses="character")

# Endrer navn i data fra fylkesregion til region
names(inputdata)[2] <- "region"

inputdata$region = FixRegionkode(inputdata$region) # ledende 0-er legges til
}

# Output data som definert av kombinasjonerFil
z <- KostraRegnskap(inputdata,funksjonshierarki,artshierarki,kombinasjoner=kombinasjoner)

# Trekkker 500 tilfeldige kombinasjoner og kjorer med det
kombinasjoner500 = kombinasjoner[sample(NROW(kombinasjoner),500),]
z <- KostraRegnskap(inputdata,funksjonshierarki,artshierarki,kombinasjoner=kombinasjoner500)

if (lesDataFraS){
  # Trekkker 100 tilfeldige regioner og kjorer med det
  regioner100 = sample(unique(inputdata$region),100)
  z <- KostraRegnskap(inputdata,funksjonshierarki,artshierarki,kombinasjoner=kombinasjoner500,regioner=regioner100)

  # Minidata
  z <- KostraRegnskap(inputdata,funksjonshierarki,artshierarki,kombinasjoner=kombinasjoner500[1:5,],regioner=regioner100[1:5])
  print(z)
}



statisticsnorway/Kostra documentation built on Nov. 2, 2024, 6:40 p.m.