View source: R/KostraRegnskap.R
KostraRegnskapBeregning | R Documentation |
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.
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
)
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 |
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")).
En data frame
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.
HierarchyCompute
, HierarchicalWildcardGlobbing
#==========================================================================
# 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)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.