From 37b2e845b1c32adec207dc35a7b4c86e732658ba Mon Sep 17 00:00:00 2001 From: Helmer Belbo <Helmer.Belbo@nibio.no> Date: Thu, 26 Mar 2020 14:35:10 +0100 Subject: [PATCH] Major improvements: adding data, adding functions, expanding time span for regional edits. --- NAMESPACE | 3 +- R/no_regioninndeling.R | 122 ++++ R/ssb_skogsavvirkning.R | 103 ++- R/sysdata.rda | Bin 0 -> 6869 bytes README.md | 8 +- data-raw/DATASET.R | 152 +++++ .../Regindeling_Fylker_1972_01_status.txt | 21 + data-raw/Regindeling_Fylker_2006_7.txt | 1 + data-raw/Regindeling_Fylker_2018_1.txt | 5 + data-raw/Regindeling_Fylker_2020_1.txt | 27 + data-raw/Regindeling_Kommuner_1994_status.txt | 437 +++++++++++++ data-raw/Regindeling_Kommuner_2002_01.txt | 7 + data-raw/Regindeling_Kommuner_2002_06.txt | 3 + data-raw/Regindeling_Kommuner_2004_01.txt | 3 + data-raw/Regindeling_Kommuner_2005_01.txt | 5 + data-raw/Regindeling_Kommuner_2006_01.txt | 9 + data-raw/Regindeling_Kommuner_2008_01.txt | 5 + data-raw/Regindeling_Kommuner_2012_01.txt | 5 + data-raw/Regindeling_Kommuner_2013_01.txt | 11 + data-raw/Regindeling_Kommuner_2017_01.txt | 7 + data-raw/Regindeling_Kommuner_2018_01.txt | 109 +++ data-raw/Regindeling_Kommuner_2019_01.txt | 3 + data-raw/Regindeling_Kommuner_2020_01.txt | 619 ++++++++++++++++++ data/regref_fylke.rda | Bin 0 -> 637 bytes data/regref_kommune.rda | Bin 0 -> 7770 bytes ...03794_bruttoverdi_fylke2020_1996_2018.json | 1 - man/regnavn.at.ref.yr.Rd | 24 + man/ssb_skog_omsetning.Rd | 18 - man/t03794.Rd | 23 + 29 files changed, 1673 insertions(+), 58 deletions(-) create mode 100644 R/no_regioninndeling.R create mode 100644 R/sysdata.rda create mode 100644 data-raw/DATASET.R create mode 100644 data-raw/Regindeling_Fylker_1972_01_status.txt create mode 100644 data-raw/Regindeling_Fylker_2006_7.txt create mode 100644 data-raw/Regindeling_Fylker_2018_1.txt create mode 100644 data-raw/Regindeling_Fylker_2020_1.txt create mode 100644 data-raw/Regindeling_Kommuner_1994_status.txt create mode 100644 data-raw/Regindeling_Kommuner_2002_01.txt create mode 100644 data-raw/Regindeling_Kommuner_2002_06.txt create mode 100644 data-raw/Regindeling_Kommuner_2004_01.txt create mode 100644 data-raw/Regindeling_Kommuner_2005_01.txt create mode 100644 data-raw/Regindeling_Kommuner_2006_01.txt create mode 100644 data-raw/Regindeling_Kommuner_2008_01.txt create mode 100644 data-raw/Regindeling_Kommuner_2012_01.txt create mode 100644 data-raw/Regindeling_Kommuner_2013_01.txt create mode 100644 data-raw/Regindeling_Kommuner_2017_01.txt create mode 100644 data-raw/Regindeling_Kommuner_2018_01.txt create mode 100644 data-raw/Regindeling_Kommuner_2019_01.txt create mode 100644 data-raw/Regindeling_Kommuner_2020_01.txt create mode 100644 data/regref_fylke.rda create mode 100644 data/regref_kommune.rda delete mode 100644 inst/extdata/SSB_t03794_bruttoverdi_fylke2020_1996_2018.json create mode 100644 man/regnavn.at.ref.yr.Rd delete mode 100644 man/ssb_skog_omsetning.Rd create mode 100644 man/t03794.Rd diff --git a/NAMESPACE b/NAMESPACE index 70db1f4..770d793 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -2,7 +2,8 @@ export(ld.fylke.mnd) export(ld.kommune) -export(ssb_skog_omsetning) +export(regnavn.at.ref.yr) +export(t03794) export(t03895) export(t06216) export(t12750) diff --git a/R/no_regioninndeling.R b/R/no_regioninndeling.R new file mode 100644 index 0000000..ca11cc7 --- /dev/null +++ b/R/no_regioninndeling.R @@ -0,0 +1,122 @@ + +#' Region navn og region kode for gitt år +#' +#' Denne funksjonen tar regionkoder og regionnavn fra en regional statistikk, +#' tar inn tabell som viser historiske endringer i regional inndeling av Norge +#' og gjør om til riktige koder og navn for et gitt referanseår (ref.yr) +#' Funksjonen fungerer for fylkesnivå inkludert landet ELLER for kommunenivå. +#' +#' @param regionstat +#' @param ref.yr +#' @param reg_level is the region level in the regionstat ("fylke" | kommune") +#' +#' @return tibble having the regional statistics including the regional +#' names and codes for the reference year in question +#' @export +#' +#' @examples regnavn.at.ref.yr(regionstat = t12750(), ref.yr = 2020 ) %>% glimpse() +regnavn.at.ref.yr<- function(regionstat, ref.yr = year(now()), reg_level = "fylke"){ + # regionstat = t12750() #for testing + + + # Fetch the relevant region reference table regref + if (reg_level == "fylke"){ regref <- regref_fylke + } else { regref <- regref_kommune} + + # harmonizing + ref.yr = as.integer(ref.yr) + +glimpse(regref) + # Fetching from regref + regref = as.data.frame(regref, stringsAsFactors = F) + regref_n <- names(regref) #their column names + regref_yr <- as.integer(stringr::str_extract(names(regref), "\\d{4}")) #year + regref_typ <- stringr::str_sub(regref_n, 5, 8) # type (code / name) + glimpse(tibble(regref_yr = regref_yr, regref_typ = regref_typ)) + +glimpse(regionstat[seq.int(1, dim(regionstat)[1], length.out = 10), ]) + + regionstat <- + regionstat %>% + dplyr::mutate(., + # for each obs in regionstat: tag which column in regreft one should fetch the name and code + # when to fit with the ref.yr. + regref_ref.yr_col_code = + max( which(regref_yr <= ref.yr & regref_typ == "code") ), + + regref_ref.yr_col_name = + max( which(regref_yr <= ref.yr & regref_typ == "name") )) + + glimpse(regionstat[seq.int(1, dim(regionstat)[1], length.out = 10), ]) + + print(paste0("regionstat$ar: ", str(regionstat$ar))) + print(paste0("regref_yr : ", str(regref_yr))) + regionstat <- + regionstat %>% + dplyr::mutate(., + # For each obsrv in the regionstat: + # which column in regref the "ar" belongs to; + # = ar_regref_col_rcode and ar_regref_col_rname + yr_regref_col_rcode = purrr::pmap_int(., .f = function(ar, ...){ + max( which( regref_yr <= ar & regref_typ == "code") ) + }), + + yr_regref_col_rname = purrr::pmap_int(., .f = function(ar, ...){ + max( which( regref_yr <= ar & regref_typ == "name") ) + })) + glimpse(regionstat[seq.int(1, dim(regionstat)[1], length.out = 10), ]) + regionstat <- + regionstat %>% + dplyr::mutate(., + + # if each regionstat$region is present in the column in regref + # corresponding to the year of observation in regionstat + # = recode_regref_row + regcode_in_regrefcol = purrr::pmap_lgl(., .f = function(region_kode, yr_regref_col_rcode, ...){ + case_when( + region_kode %in% regref[, yr_regref_col_rcode] ~ T, + TRUE ~ F) + }), + # and which row in regref the region_code belongs to: + # = recode_regref_row + regcode_regref_row = purrr::pmap_int(., .f = function(region_kode, yr_regref_col_rcode, ...){ + case_when( + region_kode %in% regref[, yr_regref_col_rcode] ~ + which( regref[, yr_regref_col_rcode] == region_kode)[1] , + TRUE ~ NA_integer_) + }) + ) %>% + # + + dplyr::mutate(., + valid_reg = + dplyr::case_when( + regcode_in_regrefcol | region_kode == "0" ~ T, + TRUE ~ F)) + + glimpse(regionstat) + + regionstat <- regionstat %>% + + dplyr::filter(., valid_reg == TRUE) %>% + +# Then we have indexes needed to pick the right row and column +# to populate both reg_k@ref.yr and reg_n@ref.yr + dplyr::mutate(., + !!sym(paste0("reg_n", ref.yr)) := coalesce(regref[cbind(regcode_regref_row, regref_ref.yr_col_name)], region), + !!sym(paste0("reg_k", ref.yr)) := coalesce(regref[cbind(regcode_regref_row, regref_ref.yr_col_code)], region_kode) + ) + + + return(regionstat) + +} + + + + + + + + + diff --git a/R/ssb_skogsavvirkning.R b/R/ssb_skogsavvirkning.R index 3793bdf..65be40d 100644 --- a/R/ssb_skogsavvirkning.R +++ b/R/ssb_skogsavvirkning.R @@ -1,3 +1,61 @@ +##### t03794 +#' Skogsavvirkning bruttoverdi t03794 +#' bruttoverdi per år av tømmer, SSB tabell 03794 +#' +#' Tabellen gir totalverdi av tømmer solgt per år og geografisk enhet, fra 1996 til 2018. +#' Litt usikker om energivirkesortimenter og ved er med. +#' https://www.ssb.no/statbank/list/skogav +#' +#' @param geolevel +#' +#' @return en tibble med hele datasetet. +#' @export +#' +#' @examples +#' t03794() +t03794 <- function(geolevel = 'fylke'){ + + if (!(geolevel %in% c("fylke", "kommune", "landet"))) {stop("warning: to get result, ret should be one of 'fylker', 'kommuner', 'landet'" )} + metadt <- PxWebApiData::ApiData("http://data.ssb.no/api/v0/no/table/03794", returnMetaData = TRUE) + regs <- unlist(purrr::flatten(metadt[[1]][3])) + + kommuner <- regs[stringr::str_length(regs) == 4] + fylker <- regs[stringr::str_length(regs) == 2] + landet <- regs[stringr::str_length(regs) == 1] + + geolevels <- list(kommune = kommuner, fylke = fylker, landet = landet) + geoselector <- which(names(geolevels) == geolevel) + + pxdt <- PxWebApiData::ApiData("http://data.ssb.no/api/v0/no/table/03794", + #Region = T, #c(landet, geolevels[[geoselector]]), + Region = c(landet, geolevels[[geoselector]]), + Tid = T, #c("2010", "2016", "2017"), + ContentsCode = T # 10i) + ) + + regioner_utvalg <- + dplyr::as.tbl(pxdt[[1]]) %>% + dplyr::rename(., bruttoverdi = value) %>% + dplyr::group_by(region) %>% + dplyr::summarize(., volumtot = sum(bruttoverdi, na.rm = T)) %>% + dplyr::filter(., volumtot > 0) %>% + dplyr::pull(., region) + + ds <- dplyr::as.tbl(pxdt[[2]]) %>% + dplyr::rename(., region_kode = Region, ar = Tid) + + bruttov <- dplyr::as.tbl(pxdt[[1]]) %>% + + dplyr::rename(., ar = år, bruttoverdi = value) %>% + dplyr::bind_cols(., (ds %>% dplyr::select(., region_kode))) %>% + dplyr::filter(., region %in% regioner_utvalg) %>% + dplyr::mutate(., ar = as.integer(ar) + ) + return(bruttov) + +} + +##### t12750 #' Skogsavvirkning priser t12750 #' prisstatistikk for tømmer fra SSB tabell 12750 #' @@ -54,7 +112,7 @@ t12750 <- function(){ - +##### t06216 #' Skogsavvirkning priser t06216 #' prisstatistikk for tømmer SSB tabell 06216 #' @@ -112,6 +170,7 @@ t06216 <- function(){ # NB: avslutta, tidsserie 1996 - 2017 return(priser) } +####### t03794 #' Skogsavvirkning volum t03895 #' Hogststatistikk for tømmer SSB tabell 03895 #' 1996 - 2018 @@ -126,15 +185,15 @@ t06216 <- function(){ # NB: avslutta, tidsserie 1996 - 2017 #' #' @examples #' t03895() -t03895 <- function( geolevel = 'fylke'){ # 1996 - 2018 +t03895 <- function(geolevel = 'fylke'){ # 1996 - 2018 - if ( !(geolevel %in% c("fylke", "kommune", "landet"))){ stop("warning: to get result, ret should be one of 'fylker', 'kommuner', 'landet'" )} + if ( !(geolevel %in% c("fylke", "kommune", "landet"))) { stop("warning: to get result, ret should be one of 'fylker', 'kommuner', 'landet'" )} metadt <- PxWebApiData::ApiData("http://data.ssb.no/api/v0/no/table/03895", returnMetaData = TRUE) regs <- unlist(purrr::flatten(metadt[[1]][3])) - kommuner <- regs[stringr::str_length(regs)==4] - fylker <- regs[stringr::str_length(regs)==2] - landet <- regs[stringr::str_length(regs)==1] + kommuner <- regs[stringr::str_length(regs) == 4] + fylker <- regs[stringr::str_length(regs) == 2] + landet <- regs[stringr::str_length(regs) == 1] geolevels <- list(kommune = kommuner, fylke = fylker, landet = landet) geoselector <- which(names(geolevels) == geolevel) @@ -158,7 +217,8 @@ t03895 <- function( geolevel = 'fylke'){ # 1996 - 2018 dplyr::rename(., region_kode = Region, ar = Tid, virkeskategori = Treslag) volum <- dplyr::as.tbl(pxdt[[1]]) %>% - dplyr::rename(., ar = år, kategoritekst = sortiment, volum_m3pris = value) %>% + + dplyr::rename(., ar = år, kategoritekst = sortiment, volum_m3pris = value) %>% dplyr::bind_cols(., (ds %>% dplyr::select(., region_kode, virkeskategori))) %>% dplyr::filter(., region %in% regioner_utvalg) %>% dplyr::mutate(., @@ -175,38 +235,11 @@ t03895 <- function( geolevel = 'fylke'){ # 1996 - 2018 stringr::str_sub(virkeskategori, 1,2) %in% c("14", "24", "34") ~ "massevirke", TRUE ~ "annet" ), - ar = as.numeric(ar) + ar = as.integer(ar) ) return(volum) } -#' SSB skogsavvirkning for salg: omsetning -#' -#' Denne henter tabellene for prishistorikk t12750 og hogstvolum t03895 og setter dem sammen. -#' https://www.ssb.no/statbank/list/skogav -#' @return en tibble med pris og volum fordelt på fylker og sortimentgrupper og år. -#' @export -#' -#' @examples -#' ssb_skog_omsetning() -ssb_skog_omsetning = function(){ - priser_t12750 <- t12750() - volum_t03895 <- t03895() - begge <- - dplyr::full_join( - priser_t12750 %>% - select(., region, region_kode, ar, treslag, virkeskategori, sortimentgruppe, pris), - volum_t03895 %>% - dplyr::filter(., ar >= min(priser_t12750$ar)) %>% - dplyr::select(., region, region_kode, ar, treslag, volum_m3pris, virkeskategori, sortimentgruppe ) %>% - dplyr::group_by(., region, region_kode, ar, treslag, virkeskategori, sortimentgruppe) %>% - dplyr::summarize(., volum_m3pris = sum(volum_m3pris)), - by = c("region", "region_kode", "ar", "treslag", "virkeskategori", "sortimentgruppe")) %>% - dplyr::rowwise() %>% - mutate(., omsetning = as.double(pris) * volum_m3pris ) %>% - ungroup() - return(begge) -} diff --git a/R/sysdata.rda b/R/sysdata.rda new file mode 100644 index 0000000000000000000000000000000000000000..111cbd1a197f00028f2aba9df0bc83a970cc85fd GIT binary patch literal 6869 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 K;WtT}*Z=_c>}{F= literal 0 HcmV?d00001 diff --git a/README.md b/README.md index d510f99..9d9eb1e 100644 --- a/README.md +++ b/README.md @@ -4,8 +4,8 @@ Landbruksdirektoratet is providing statistics for annual cut at municipality lev in excel sheets, one excel document for each year. https://www.landbruksdirektoratet.no/no/statistikk/skogbruk/tommeravvirkning -SSB provide similar statistics, but at county level, annual resolution and -a bit more lagged publication. +SSB provide similar statistics, but some of it only at county level, annual resolution and +a bit more lagged publication. But longer history. https://www.ssb.no/statbank/list/skogav @@ -16,7 +16,9 @@ This should install it to R: `devtools::install_git('https://gitlab.nibio.no/hbel/vsop.git')` Load dependent packages: -`invisible(lapply(c("magrittr","stringr","dplyr","tibble","lubridate","readxl","PxWebApiData"),library,character.only =T))` +`invisible( + lapply( c("magrittr","stringr","dplyr","tibble","lubridate","readxl","PxWebApiData"), + library,character.only =T))` Demo: `vsop::ssb_skog_omsetning()` diff --git a/data-raw/DATASET.R b/data-raw/DATASET.R new file mode 100644 index 0000000..2aebdb6 --- /dev/null +++ b/data-raw/DATASET.R @@ -0,0 +1,152 @@ +## code to prepare `DATASET` dataset goes here + +region_at_time_txtfls = function(filename){ + # function returning the mapping from one region name and code tag to the next according to the SSB region classification + #Fylker: https://www.ssb.no/en/klass/klassifikasjoner/104/versjon/1158/koder + #Kommuner: https://www.ssb.no/en/klass/klassifikasjoner/131 + + # filename = files[1] + #readr::guess_encoding(filename) + datastring = readLines(filename, n=-1L, + encoding = dplyr::pull(readr::guess_encoding(filename)[1,1]), + warn = F)#nchars = 10^6) + headings = unlist(stringr::str_split(datastring[1], "\t")) + print(headings) + datastring = datastring[-1] + + if((length(headings)%% 2) == 0 & length(datastring)>1) { + # Then string should be arranged to pairs of "froms" and "tos" + datastring = stringr::str_remove(datastring, pattern = "\t") + convtable = matrix(data = datastring, ncol = 2, byrow = T) + colnames(convtable) = headings + headingsinv = unlist(lapply(X= str_split(headings, " "), FUN = function(X){paste0(X[2]," ", X[1], " 1")})) + + colnamecandidates = stringr::str_sub( + stringr::str_replace_all( + string = lubridate::ymd(headingsinv), + pattern = "-", + replacement = ""), + start=1, end = 6) + + convtable = dplyr::as_tibble(as.data.frame(convtable, stringsAsFactors=F)) + froms = dplyr::as_tibble( + str_split( + string = dplyr::pull(convtable[,1]), pattern = " - ", n=2, simplify = T)) + colnames(froms) = paste(c("reg_code", "reg_name"), rep(colnamecandidates[1], 2), sep = "_") + + tos = dplyr::as_tibble( + stringr::str_split( + string = dplyr::pull(convtable[,2]), pattern = " - ", n=2, simplify = T)) + colnames(tos) = paste(c("reg_code", "reg_name"), rep(colnamecandidates[2], 2), sep = "_") + + fromstos = dplyr::bind_cols(froms, tos) + } else if((length(headings)%% 2) == 1 & length(datastring)>1) { + # Then it is the starting point, i.e, first array of region units + + convtable = matrix(data = datastring, ncol = 1, byrow = T) + #colnames(convtable) = headings + headingsinv = + unlist(lapply(X= stringr::str_split(headings, " "), + FUN = function(X){ paste0(X[2]," ", X[1], " 1") + })) + colnamecandidates = + stringr::str_sub( + stringr::str_replace_all( + string = lubridate::ymd(headingsinv), + pattern = "-", + replacement = ""), start=1, end = 6) + + convtable = as.data.frame(convtable, stringsAsFactors=F ) + froms = data.frame( + stringr::str_split( + string = convtable[,1], + pattern = " - ", + n=2, + simplify = T), stringsAsFactors = F ) + + colnames(froms) = paste(c("reg_code", "reg_name"), rep(colnamecandidates[1], 2), sep = "_") + + fromstos = dplyr::as_tibble(froms) + + } else if((length(headings)%% 2) == 0 & length(datastring) == 0) { # THen it is an empty update but we still need the "update dates" + + headingsinv = unlist(lapply(X= str_split(headings, " "), FUN = function(X){paste0(X[2]," ", X[1], " 1")})) + colnamecandidates = stringr::str_sub( + stringr::str_replace_all( + string = lubridate::ymd(headingsinv), + pattern = "-", + replacement = ""), + start=1, end = 6) + + froms = data.frame( + matrix( + data = c("a", "b"), + ncol = 2, byrow = T)[NULL, ], + stringsAsFactors = F) + colnames(froms) = + paste(c("reg_code", "reg_name"), rep(colnamecandidates[1], 2), sep = "_") + + tos = data.frame( + matrix(data = c("a", "b"), + ncol = 2, byrow = T)[NULL, ], + stringsAsFactors = F) + colnames(tos) = paste(c("reg_code", "reg_name"), rep(colnamecandidates[2], 2), sep = "_") + + fromstos = dplyr::bind_cols(dplyr::as_tibble(froms), dplyr::as_tibble(tos)) + } else {fromstos = NULL} + + + return(fromstos) +} +regupdated = function(files){ + regiondef = region_at_time_txtfls(filename = files[1]) + + for (i in 2:length(files)){ + print(i) + regupdate = region_at_time_txtfls(filename = files[i]) + ## !! coming left_join: It would be best to find a way to join only by the "reg_code_x" variables but I could not find how to type this :-( + both = dplyr::left_join(regiondef, regupdate) + head(both) + regupnames <- names(both) + regupnamesl <- length(regupnames) + both %>% + dplyr::mutate(., + !!sym(regupnames[regupnamesl-1]) := + dplyr::case_when( + !is.na(!!dplyr::sym(regupnames[regupnamesl-1])) ~ + !!dplyr::sym(regupnames[regupnamesl-1]), + TRUE ~ !!dplyr::sym(regupnames[regupnamesl-3])), + !!sym(regupnames[regupnamesl]) := + dplyr::case_when( + !is.na(!!dplyr::sym(regupnames[regupnamesl])) ~ !!dplyr::sym(regupnames[regupnamesl]), + TRUE ~ !!dplyr::sym(regupnames[regupnamesl-2])) + ) -> regiondef + } + return(regiondef) +} + +no.regiontabell.flk = function(){ + #Fylker: https://www.ssb.no/en/klass/klassifikasjoner/104/versjon/1158/koder + + files <- list.files( path = "./data-raw", pattern = ".txt", full.names = T) %>% + .[which(!stringr::str_detect(., "~"))] %>% + .[which(stringr::str_detect(., "Regindeling_Fylker"))] + inndeling <- regupdated(files = files) + return(inndeling) +} + + +no.regiontabell.kmn = function(){ + #Kommuner: https://www.ssb.no/en/klass/klassifikasjoner/131 + files <- list.files(path = "./data-raw", pattern = ".txt", full.names = T) %>% + .[which(!stringr::str_detect(., "~"))] %>% + .[which(stringr::str_detect(., "Regindeling_Kommuner"))] + inndeling <- regupdated(files = files) + return(inndeling) + +} + +regref_fylke <- no.regiontabell.flk() +regref_kommune <- no.regiontabell.kmn() + +usethis::use_data(regref_kommune, regref_fylke, overwrite = T) diff --git a/data-raw/Regindeling_Fylker_1972_01_status.txt b/data-raw/Regindeling_Fylker_1972_01_status.txt new file mode 100644 index 0000000..6dcbdd4 --- /dev/null +++ b/data-raw/Regindeling_Fylker_1972_01_status.txt @@ -0,0 +1,21 @@ +januar 1972 +01 - Østfold +02 - Akershus +03 - Oslo +04 - Hedmark +05 - Oppland +06 - Buskerud +07 - Vestfold +08 - Telemark +09 - Aust-Agder +10 - Vest-Agder +11 - Rogaland +12 - Hordaland +14 - Sogn og Fjordane +15 - Møre og Romsdal +16 - Sør-Trøndelag +17 - Nord-Trøndelag +18 - Nordland +19 - Troms +20 - Finnmark Finnmárku +99 - Uoppgitt \ No newline at end of file diff --git a/data-raw/Regindeling_Fylker_2006_7.txt b/data-raw/Regindeling_Fylker_2006_7.txt new file mode 100644 index 0000000..e9cf87c --- /dev/null +++ b/data-raw/Regindeling_Fylker_2006_7.txt @@ -0,0 +1 @@ +January 1972 July 2006 \ No newline at end of file diff --git a/data-raw/Regindeling_Fylker_2018_1.txt b/data-raw/Regindeling_Fylker_2018_1.txt new file mode 100644 index 0000000..b0da95e --- /dev/null +++ b/data-raw/Regindeling_Fylker_2018_1.txt @@ -0,0 +1,5 @@ +juli 2006 januar 2018 +16 - Sør-Trøndelag +50 - Trøndelag +17 - Nord-Trøndelag +50 - Trøndelag \ No newline at end of file diff --git a/data-raw/Regindeling_Fylker_2020_1.txt b/data-raw/Regindeling_Fylker_2020_1.txt new file mode 100644 index 0000000..86bc501 --- /dev/null +++ b/data-raw/Regindeling_Fylker_2020_1.txt @@ -0,0 +1,27 @@ +januar 2018 januar 2020 +01 - �stfold +30 - Viken +02 - Akershus +30 - Viken +04 - Hedmark +34 - Innlandet +05 - Oppland +34 - Innlandet +06 - Buskerud +30 - Viken +07 - Vestfold +38 - Vestfold og Telemark +08 - Telemark +38 - Vestfold og Telemark +09 - Aust-Agder +42 - Agder +10 - Vest-Agder +42 - Agder +12 - Hordaland +46 - Vestland +14 - Sogn og Fjordane +46 - Vestland +19 - Troms Romsa +54 - Troms og Finnmark Romsa ja Finnm�rku +20 - Finnmark Finnm�rku +54 - Troms og Finnmark Romsa ja Finnm�rku \ No newline at end of file diff --git a/data-raw/Regindeling_Kommuner_1994_status.txt b/data-raw/Regindeling_Kommuner_1994_status.txt new file mode 100644 index 0000000..78e1b9e --- /dev/null +++ b/data-raw/Regindeling_Kommuner_1994_status.txt @@ -0,0 +1,437 @@ +januar 1994 +0101 - Halden +0104 - Moss +0105 - Sarpsborg +0106 - Fredrikstad +0111 - Hvaler +0118 - Aremark +0119 - Marker +0121 - Rømskog +0122 - Trøgstad +0123 - Spydeberg +0124 - Askim +0125 - Eidsberg +0127 - Skiptvet +0128 - Rakkestad +0135 - Råde +0136 - Rygge +0137 - Våler +0138 - Hobøl +0211 - Vestby +0213 - Ski +0214 - Ås +0215 - Frogn +0216 - Nesodden +0217 - Oppegård +0219 - Bærum +0220 - Asker +0221 - Aurskog-Høland +0226 - Sørum +0227 - Fet +0228 - Rælingen +0229 - Enebakk +0230 - Lørenskog +0231 - Skedsmo +0233 - Nittedal +0234 - Gjerdrum +0235 - Ullensaker +0236 - Nes +0237 - Eidsvoll +0238 - Nannestad +0239 - Hurdal +0301 - Oslo +0402 - Kongsvinger +0403 - Hamar +0412 - Ringsaker +0415 - Løten +0417 - Stange +0418 - Nord-Odal +0419 - Sør-Odal +0420 - Eidskog +0423 - Grue +0425 - Åsnes +0426 - Våler +0427 - Elverum +0428 - Trysil +0429 - Åmot +0430 - Stor-Elvdal +0432 - Rendalen +0434 - Engerdal +0436 - Tolga +0437 - Tynset +0438 - Alvdal +0439 - Folldal +0441 - Os +0501 - Lillehammer +0502 - Gjøvik +0511 - Dovre +0512 - Lesja +0513 - Skjåk +0514 - Lom +0515 - Vågå +0516 - Nord-Fron +0517 - Sel +0519 - Sør-Fron +0520 - Ringebu +0521 - Øyer +0522 - Gausdal +0528 - Østre Toten +0529 - Vestre Toten +0532 - Jevnaker +0533 - Lunner +0534 - Gran +0536 - Søndre Land +0538 - Nordre Land +0540 - Sør-Aurdal +0541 - Etnedal +0542 - Nord-Aurdal +0543 - Vestre Slidre +0544 - Øystre Slidre +0545 - Vang +0602 - Drammen +0604 - Kongsberg +0605 - Ringerike +0612 - Hole +0615 - Flå +0616 - Nes +0617 - Gol +0618 - Hemsedal +0619 - Ål +0620 - Hol +0621 - Sigdal +0622 - Krødsherad +0623 - Modum +0624 - Øvre Eiker +0625 - Nedre Eiker +0626 - Lier +0627 - Røyken +0628 - Hurum +0631 - Flesberg +0632 - Rollag +0633 - Nore og Uvdal +0701 - Borre +0702 - Holmestrand +0704 - Tønsberg +0706 - Sandefjord +0709 - Larvik +0711 - Svelvik +0713 - Sande +0714 - Hof +0716 - Våle +0718 - Ramnes +0719 - Andebu +0720 - Stokke +0722 - Nøtterøy +0723 - Tjøme +0728 - Lardal +0805 - Porsgrunn +0806 - Skien +0807 - Notodden +0811 - Siljan +0814 - Bamble +0815 - Kragerø +0817 - Drangedal +0819 - Nome +0821 - Bø +0822 - Sauherad +0826 - Tinn +0827 - Hjartdal +0828 - Seljord +0829 - Kviteseid +0830 - Nissedal +0831 - Fyresdal +0833 - Tokke +0834 - Vinje +0901 - Risør +0904 - Grimstad +0906 - Arendal +0911 - Gjerstad +0912 - Vegårshei +0914 - Tvedestrand +0919 - Froland +0926 - Lillesand +0928 - Birkenes +0929 - Åmli +0935 - Iveland +0937 - Evje og Hornnes +0938 - Bygland +0940 - Valle +0941 - Bykle +1001 - Kristiansand +1002 - Mandal +1003 - Farsund +1004 - Flekkefjord +1014 - Vennesla +1017 - Songdalen +1018 - Søgne +1021 - Marnardal +1026 - Åseral +1027 - Audnedal +1029 - Lindesnes +1032 - Lyngdal +1034 - Hægebostad +1037 - Kvinesdal +1046 - Sirdal +1101 - Eigersund +1102 - Sandnes +1103 - Stavanger +1106 - Haugesund +1111 - Sokndal +1112 - Lund +1114 - Bjerkreim +1119 - Hå +1120 - Klepp +1121 - Time +1122 - Gjesdal +1124 - Sola +1127 - Randaberg +1129 - Forsand +1130 - Strand +1133 - Hjelmeland +1134 - Suldal +1135 - Sauda +1141 - Finnøy +1142 - Rennesøy +1144 - Kvitsøy +1145 - Bokn +1146 - Tysvær +1149 - Karmøy +1151 - Utsira +1154 - Vindafjord +1201 - Bergen +1211 - Etne +1214 - Ølen +1216 - Sveio +1219 - Bømlo +1221 - Stord +1222 - Fitjar +1223 - Tysnes +1224 - Kvinnherad +1227 - Jondal +1228 - Odda +1231 - Ullensvang +1232 - Eidfjord +1233 - Ulvik +1234 - Granvin +1235 - Voss +1238 - Kvam +1241 - Fusa +1242 - Samnanger +1243 - Os +1244 - Austevoll +1245 - Sund +1246 - Fjell +1247 - Askøy +1251 - Vaksdal +1252 - Modalen +1253 - Osterøy +1256 - Meland +1259 - Øygarden +1260 - Radøy +1263 - Lindås +1264 - Austrheim +1265 - Fedje +1266 - Masfjorden +1401 - Flora +1411 - Gulen +1412 - Solund +1413 - Hyllestad +1416 - Høyanger +1417 - Vik +1418 - Balestrand +1419 - Leikanger +1420 - Sogndal +1421 - Aurland +1422 - Lærdal +1424 - Årdal +1426 - Luster +1428 - Askvoll +1429 - Fjaler +1430 - Gaular +1431 - Jølster +1432 - Førde +1433 - Naustdal +1438 - Bremanger +1439 - Vågsøy +1441 - Selje +1443 - Eid +1444 - Hornindal +1445 - Gloppen +1449 - Stryn +1502 - Molde +1503 - Kristiansund +1504 - Ålesund +1511 - Vanylven +1514 - Sande +1515 - Herøy +1516 - Ulstein +1517 - Hareid +1519 - Volda +1520 - Ørsta +1523 - Ørskog +1524 - Norddal +1525 - Stranda +1526 - Stordal +1528 - Sykkylven +1529 - Skodje +1531 - Sula +1532 - Giske +1534 - Haram +1535 - Vestnes +1539 - Rauma +1543 - Nesset +1545 - Midsund +1546 - Sandøy +1547 - Aukra +1548 - Fræna +1551 - Eide +1554 - Averøy +1556 - Frei +1557 - Gjemnes +1560 - Tingvoll +1563 - Sunndal +1566 - Surnadal +1567 - Rindal +1569 - Aure +1571 - Halsa +1572 - Tustna +1573 - Smøla +1601 - Trondheim +1612 - Hemne +1613 - Snillfjord +1617 - Hitra +1620 - Frøya +1621 - Ørland +1622 - Agdenes +1624 - Rissa +1627 - Bjugn +1630 - Åfjord +1632 - Roan +1633 - Osen +1634 - Oppdal +1635 - Rennebu +1636 - Meldal +1638 - Orkdal +1640 - Røros +1644 - Holtålen +1648 - Midtre Gauldal +1653 - Melhus +1657 - Skaun +1662 - Klæbu +1663 - Malvik +1664 - Selbu +1665 - Tydal +1702 - Steinkjer +1703 - Namsos +1711 - Meråker +1714 - Stjørdal +1717 - Frosta +1718 - Leksvik +1719 - Levanger +1721 - Verdal +1723 - Mosvik +1724 - Verran +1725 - Namdalseid +1729 - Inderøy +1736 - Snåsa +1738 - Lierne +1739 - Røyrvik +1740 - Namsskogan +1742 - Grong +1743 - Høylandet +1744 - Overhalla +1748 - Fosnes +1749 - Flatanger +1750 - Vikna +1751 - Nærøy +1755 - Leka +1804 - Bodø +1805 - Narvik +1811 - Bindal +1812 - Sømna +1813 - Brønnøy +1815 - Vega +1816 - Vevelstad +1818 - Herøy +1820 - Alstahaug +1822 - Leirfjord +1824 - Vefsn +1825 - Grane +1826 - Hattfjelldal +1827 - Dønna +1828 - Nesna +1832 - Hemnes +1833 - Rana +1834 - Lurøy +1835 - Træna +1836 - Rødøy +1837 - Meløy +1838 - Gildeskål +1839 - Beiarn +1840 - Saltdal +1841 - Fauske +1842 - Skjerstad +1845 - Sørfold +1848 - Steigen +1849 - Hamarøy +1850 - Tysfjord +1851 - Lødingen +1852 - Tjeldsund +1853 - Evenes +1854 - Ballangen +1856 - Røst +1857 - Værøy +1859 - Flakstad +1860 - Vestvågøy +1865 - Vågan +1866 - Hadsel +1867 - Bø +1868 - Øksnes +1870 - Sortland +1871 - Andøy +1874 - Moskenes +1901 - Harstad +1902 - Tromsø +1911 - Kvæfjord +1913 - Skånland +1915 - Bjarkøy +1917 - Ibestad +1919 - Gratangen +1920 - Lavangen +1922 - Bardu +1923 - Salangen +1924 - Målselv +1925 - Sørreisa +1926 - Dyrøy +1927 - Tranøy +1928 - Torsken +1929 - Berg +1931 - Lenvik +1933 - Balsfjord +1936 - Karlsøy +1938 - Lyngen +1939 - Storfjord +1940 - Kåfjord +1941 - Skjervøy +1942 - Nordreisa +1943 - Kvænangen +2002 - Vardø +2003 - Vadsø +2004 - Hammerfest +2011 - Kautokeino +2012 - Alta +2014 - Loppa +2015 - Hasvik +2017 - Kvalsund +2018 - Måsøy +2019 - Nordkapp +2020 - Porsanger +2021 - Kárásjohka - Karasjok +2022 - Lebesby +2023 - Gamvik +2024 - Berlevåg +2025 - Deatnu - Tana +2027 - Unjárga - Nesseby +2028 - Båtsfjord +2030 - Sør-Varanger +9999 - Unknown diff --git a/data-raw/Regindeling_Kommuner_2002_01.txt b/data-raw/Regindeling_Kommuner_2002_01.txt new file mode 100644 index 0000000..1d27b79 --- /dev/null +++ b/data-raw/Regindeling_Kommuner_2002_01.txt @@ -0,0 +1,7 @@ +Januar 1994 Januar 2002 +0716 - Våle +0716 - Re +0718 - Ramnes +0716 - Re +1214 - Ølen +1159 - Ølen diff --git a/data-raw/Regindeling_Kommuner_2002_06.txt b/data-raw/Regindeling_Kommuner_2002_06.txt new file mode 100644 index 0000000..c1716ce --- /dev/null +++ b/data-raw/Regindeling_Kommuner_2002_06.txt @@ -0,0 +1,3 @@ +Januar 2002 Juni 2002 +0701 - Borre +0701 - Horten diff --git a/data-raw/Regindeling_Kommuner_2004_01.txt b/data-raw/Regindeling_Kommuner_2004_01.txt new file mode 100644 index 0000000..fe7e63b --- /dev/null +++ b/data-raw/Regindeling_Kommuner_2004_01.txt @@ -0,0 +1,3 @@ +juni 2002 januar 2004 +2020 - Porsanger +2020 - Porsanger diff --git a/data-raw/Regindeling_Kommuner_2005_01.txt b/data-raw/Regindeling_Kommuner_2005_01.txt new file mode 100644 index 0000000..14f2b48 --- /dev/null +++ b/data-raw/Regindeling_Kommuner_2005_01.txt @@ -0,0 +1,5 @@ +januar 2004 januar 2005 +1804 - Bodø +1804 - Bodø +1842 - Skjerstad +1804 - Bodø diff --git a/data-raw/Regindeling_Kommuner_2006_01.txt b/data-raw/Regindeling_Kommuner_2006_01.txt new file mode 100644 index 0000000..6b1b29d --- /dev/null +++ b/data-raw/Regindeling_Kommuner_2006_01.txt @@ -0,0 +1,9 @@ +januar 2005 januar 2006 +1154 - Vindafjord +1160 - Vindafjord +1159 - Ølen +1160 - Vindafjord +1569 - Aure +1576 - Aure +1572 - Tustna +1576 - Aure diff --git a/data-raw/Regindeling_Kommuner_2008_01.txt b/data-raw/Regindeling_Kommuner_2008_01.txt new file mode 100644 index 0000000..91b98bd --- /dev/null +++ b/data-raw/Regindeling_Kommuner_2008_01.txt @@ -0,0 +1,5 @@ +januar 2006 januar 2008 +1503 - Kristiansund +1505 - Kristiansund +1556 - Frei +1505 - Kristiansund diff --git a/data-raw/Regindeling_Kommuner_2012_01.txt b/data-raw/Regindeling_Kommuner_2012_01.txt new file mode 100644 index 0000000..49a0b97 --- /dev/null +++ b/data-raw/Regindeling_Kommuner_2012_01.txt @@ -0,0 +1,5 @@ +januar 2008 januar 2012 +1723 - Mosvik +1756 - Inderøy +1729 - Inderøy +1756 - Inderøy diff --git a/data-raw/Regindeling_Kommuner_2013_01.txt b/data-raw/Regindeling_Kommuner_2013_01.txt new file mode 100644 index 0000000..f288f27 --- /dev/null +++ b/data-raw/Regindeling_Kommuner_2013_01.txt @@ -0,0 +1,11 @@ +januar 2012 januar 2013 +1736 - Snåsa +1736 - Snåsa +1849 - Hamarøy +1849 - Hamarøy +1850 - Tysfjord +1850 - Tysfjord +1901 - Harstad +1903 - Harstad +1915 - Bjarkøy +1903 - Harstad diff --git a/data-raw/Regindeling_Kommuner_2017_01.txt b/data-raw/Regindeling_Kommuner_2017_01.txt new file mode 100644 index 0000000..44266ef --- /dev/null +++ b/data-raw/Regindeling_Kommuner_2017_01.txt @@ -0,0 +1,7 @@ +Januar 2013 Januar 2017 +0706 - Sandefjord +0710 - Sandefjord +0719 - Andebu +0710 - Sandefjord +0720 - Stokke +0710 - Sandefjord diff --git a/data-raw/Regindeling_Kommuner_2018_01.txt b/data-raw/Regindeling_Kommuner_2018_01.txt new file mode 100644 index 0000000..1bab60f --- /dev/null +++ b/data-raw/Regindeling_Kommuner_2018_01.txt @@ -0,0 +1,109 @@ +Januar 2017 Mai 2018 +0702 - Holmestrand +0715 - Holmestrand +0709 - Larvik +0712 - Larvik +0714 - Hof +0715 - Holmestrand +0722 - Nøtterøy +0729 - Færder +0723 - Tjøme +0729 - Færder +0728 - Lardal +0712 - Larvik +1601 - Trondheim +5001 - Trondheim +1612 - Hemne +5011 - Hemne +1613 - Snillfjord +5012 - Snillfjord +1617 - Hitra +5013 - Hitra +1620 - Frøya +5014 - Frøya +1621 - Ørland +5015 - Ørland +1622 - Agdenes +5016 - Agdenes +1624 - Rissa +5054 - Indre Fosen +1627 - Bjugn +5017 - Bjugn +1630 - Åfjord +5018 - Åfjord +1632 - Roan +5019 - Roan +1633 - Osen +5020 - Osen +1634 - Oppdal +5021 - Oppdal +1635 - Rennebu +5022 - Rennebu +1636 - Meldal +5023 - Meldal +1638 - Orkdal +5024 - Orkdal +1640 - Røros +5025 - Røros +1644 - Holtålen +5026 - Holtålen +1648 - Midtre Gauldal +5027 - Midtre Gauldal +1653 - Melhus +5028 - Melhus +1657 - Skaun +5029 - Skaun +1662 - Klæbu +5030 - Klæbu +1663 - Malvik +5031 - Malvik +1664 - Selbu +5032 - Selbu +1665 - Tydal +5033 - Tydal +1702 - Steinkjer +5004 - Steinkjer +1703 - Namsos +5005 - Namsos +1711 - Meråker +5034 - Meråker +1714 - Stjørdal +5035 - Stjørdal +1717 - Frosta +5036 - Frosta +1718 - Leksvik +5054 - Indre Fosen +1719 - Levanger +5037 - Levanger +1721 - Verdal +5038 - Verdal +1724 - Verran +5039 - Verran +1725 - Namdalseid +5040 - Namdalseid +1736 - Snåase Snåsa +5041 - Snåase - Snåsa +1738 - Lierne +5042 - Lierne +1739 - Røyrvik +5043 - Raarvihke - Røyrvik +1740 - Namsskogan +5044 - Namsskogan +1742 - Grong +5045 - Grong +1743 - Høylandet +5046 - Høylandet +1744 - Overhalla +5047 - Overhalla +1748 - Fosnes +5048 - Fosnes +1749 - Flatanger +5049 - Flatanger +1750 - Vikna +5050 - Vikna +1751 - Nærøy +5051 - Nærøy +1755 - Leka +5052 - Leka +1756 - Inderøy +5053 - Inderøy \ No newline at end of file diff --git a/data-raw/Regindeling_Kommuner_2019_01.txt b/data-raw/Regindeling_Kommuner_2019_01.txt new file mode 100644 index 0000000..3e04ac6 --- /dev/null +++ b/data-raw/Regindeling_Kommuner_2019_01.txt @@ -0,0 +1,3 @@ +Mai 2018 January 2019 +1567 - Rindal +5061 - Rindal \ No newline at end of file diff --git a/data-raw/Regindeling_Kommuner_2020_01.txt b/data-raw/Regindeling_Kommuner_2020_01.txt new file mode 100644 index 0000000..2882c90 --- /dev/null +++ b/data-raw/Regindeling_Kommuner_2020_01.txt @@ -0,0 +1,619 @@ +January 2019 January 2020 +0101 - Halden +3001 - Halden +0104 - Moss +3002 - Moss +0105 - Sarpsborg +3003 - Sarpsborg +0106 - Fredrikstad +3004 - Fredrikstad +0111 - Hvaler +3011 - Hvaler +0118 - Aremark +3012 - Aremark +0119 - Marker +3013 - Marker +0121 - Rømskog +3026 - Aurskog-Høland +0122 - Trøgstad +3014 - Indre Østfold +0123 - Spydeberg +3014 - Indre Østfold +0124 - Askim +3014 - Indre Østfold +0125 - Eidsberg +3014 - Indre Østfold +0127 - Skiptvet +3015 - Skiptvet +0128 - Rakkestad +3016 - Rakkestad +0135 - Råde +3017 - Råde +0136 - Rygge +3002 - Moss +0137 - Våler +3018 - Våler (Viken) +0138 - Hobøl +3014 - Indre Østfold +0211 - Vestby +3019 - Vestby +0213 - Ski +3020 - Nordre Follo +0214 - Ås +3021 - Ås +0215 - Frogn +3022 - Frogn +0216 - Nesodden +3023 - Nesodden +0217 - Oppegård +3020 - Nordre Follo +0219 - Bærum +3024 - Bærum +0220 - Asker +3025 - Asker +0221 - Aurskog-Høland +3026 - Aurskog-Høland +0226 - Sørum +3030 - Lillestrøm +0227 - Fet +3030 - Lillestrøm +0228 - Rælingen +3027 - Rælingen +0229 - Enebakk +3028 - Enebakk +0230 - Lørenskog +3029 - Lørenskog +0231 - Skedsmo +3030 - Lillestrøm +0233 - Nittedal +3031 - Nittedal +0234 - Gjerdrum +3032 - Gjerdrum +0235 - Ullensaker +3033 - Ullensaker +0236 - Nes +3034 - Nes +0237 - Eidsvoll +3035 - Eidsvoll +0238 - Nannestad +3036 - Nannestad +0239 - Hurdal +3037 - Hurdal +0402 - Kongsvinger +3401 - Kongsvinger +0403 - Hamar +3403 - Hamar +0412 - Ringsaker +3411 - Ringsaker +0415 - Løten +3412 - Løten +0417 - Stange +3413 - Stange +0418 - Nord-Odal +3414 - Nord-Odal +0419 - Sør-Odal +3415 - Sør-Odal +0420 - Eidskog +3416 - Eidskog +0423 - Grue +3417 - Grue +0425 - Åsnes +3418 - Åsnes +0426 - Våler +3419 - Våler (Hedmark) +0427 - Elverum +3420 - Elverum +0428 - Trysil +3421 - Trysil +0429 - Åmot +3422 - Åmot +0430 - Stor-Elvdal +3423 - Stor-Elvdal +0432 - Rendalen +3424 - Rendalen +0434 - Engerdal +3425 - Engerdal +0436 - Tolga +3426 - Tolga +0437 - Tynset +3427 - Tynset +0438 - Alvdal +3428 - Alvdal +0439 - Folldal +3429 - Folldal +0441 - Os +3430 - Os +0501 - Lillehammer +3405 - Lillehammer +0502 - Gjøvik +3407 - Gjøvik +0511 - Dovre +3431 - Dovre +0512 - Lesja +3432 - Lesja +0513 - Skjåk +3433 - Skjåk +0514 - Lom +3434 - Lom +0515 - Vågå +3435 - Vågå +0516 - Nord-Fron +3436 - Nord-Fron +0517 - Sel +3437 - Sel +0519 - Sør-Fron +3438 - Sør-Fron +0520 - Ringebu +3439 - Ringebu +0521 - Øyer +3440 - Øyer +0522 - Gausdal +3441 - Gausdal +0528 - Østre Toten +3442 - Østre Toten +0529 - Vestre Toten +3443 - Vestre Toten +0532 - Jevnaker +3053 - Jevnaker +0533 - Lunner +3054 - Lunner +0534 - Gran +3446 - Gran +0536 - Søndre Land +3447 - Søndre Land +0538 - Nordre Land +3448 - Nordre Land +0540 - Sør-Aurdal +3449 - Sør-Aurdal +0541 - Etnedal +3450 - Etnedal +0542 - Nord-Aurdal +3451 - Nord-Aurdal +0543 - Vestre Slidre +3452 - Vestre Slidre +0544 - Øystre Slidre +3453 - Øystre Slidre +0545 - Vang +3454 - Vang +0602 - Drammen +3005 - Drammen +0604 - Kongsberg +3006 - Kongsberg +0605 - Ringerike +3007 - Ringerike +0612 - Hole +3038 - Hole +0615 - Flå +3039 - Flå +0616 - Nes +3040 - Nesbyen +0617 - Gol +3041 - Gol +0618 - Hemsedal +3042 - Hemsedal +0619 - Ål +3043 - Ål +0620 - Hol +3044 - Hol +0621 - Sigdal +3045 - Sigdal +0622 - Krødsherad +3046 - Krødsherad +0623 - Modum +3047 - Modum +0624 - Øvre Eiker +3048 - Øvre Eiker +0625 - Nedre Eiker +3005 - Drammen +0626 - Lier +3049 - Lier +0627 - Røyken +3025 - Asker +0628 - Hurum +3025 - Asker +0631 - Flesberg +3050 - Flesberg +0632 - Rollag +3051 - Rollag +0633 - Nore og Uvdal +3052 - Nore og Uvdal +0701 - Horten +3801 - Horten +0704 - Tønsberg +3803 - Tønsberg +0710 - Sandefjord +3804 - Sandefjord +0711 - Svelvik +3005 - Drammen +0712 - Larvik +3805 - Larvik +0713 - Sande +3802 - Holmestrand +0715 - Holmestrand +3802 - Holmestrand +0716 - Re +3803 - Tønsberg +0729 - Færder +3811 - Færder +0805 - Porsgrunn +3806 - Porsgrunn +0806 - Skien +3807 - Skien +0807 - Notodden +3808 - Notodden +0811 - Siljan +3812 - Siljan +0814 - Bamble +3813 - Bamble +0815 - Kragerø +3814 - Kragerø +0817 - Drangedal +3815 - Drangedal +0819 - Nome +3816 - Nome +0821 - Bø +3817 - Midt-Telemark +0822 - Sauherad +3817 - Midt-Telemark +0826 - Tinn +3818 - Tinn +0827 - Hjartdal +3819 - Hjartdal +0828 - Seljord +3820 - Seljord +0829 - Kviteseid +3821 - Kviteseid +0830 - Nissedal +3822 - Nissedal +0831 - Fyresdal +3823 - Fyresdal +0833 - Tokke +3824 - Tokke +0834 - Vinje +3825 - Vinje +0901 - Risør +4201 - Risør +0904 - Grimstad +4202 - Grimstad +0906 - Arendal +4203 - Arendal +0911 - Gjerstad +4211 - Gjerstad +0912 - Vegårshei +4212 - Vegårshei +0914 - Tvedestrand +4213 - Tvedestrand +0919 - Froland +4214 - Froland +0926 - Lillesand +4215 - Lillesand +0928 - Birkenes +4216 - Birkenes +0929 - Åmli +4217 - Åmli +0935 - Iveland +4218 - Iveland +0937 - Evje og Hornnes +4219 - Evje og Hornnes +0938 - Bygland +4220 - Bygland +0940 - Valle +4221 - Valle +0941 - Bykle +4222 - Bykle +1001 - Kristiansand +4204 - Kristiansand +1002 - Mandal +4205 - Lindesnes +1003 - Farsund +4206 - Farsund +1004 - Flekkefjord +4207 - Flekkefjord +1014 - Vennesla +4223 - Vennesla +1017 - Songdalen +4204 - Kristiansand +1018 - Søgne +4204 - Kristiansand +1021 - Marnardal +4205 - Lindesnes +1026 - Åseral +4224 - Åseral +1027 - Audnedal +4225 - Lyngdal +1029 - Lindesnes +4205 - Lindesnes +1032 - Lyngdal +4225 - Lyngdal +1034 - Hægebostad +4226 - Hægebostad +1037 - Kvinesdal +4227 - Kvinesdal +1046 - Sirdal +4228 - Sirdal +1102 - Sandnes +1108 - Sandnes +1129 - Forsand +1108 - Sandnes +1141 - Finnøy +1103 - Stavanger +1142 - Rennesøy +1103 - Stavanger +1201 - Bergen +4601 - Bergen +1211 - Etne +4611 - Etne +1216 - Sveio +4612 - Sveio +1219 - Bømlo +4613 - Bømlo +1221 - Stord +4614 - Stord +1222 - Fitjar +4615 - Fitjar +1223 - Tysnes +4616 - Tysnes +1224 - Kvinnherad +4617 - Kvinnherad +1227 - Jondal +4618 - Ullensvang +1228 - Odda +4618 - Ullensvang +1231 - Ullensvang +4618 - Ullensvang +1232 - Eidfjord +4619 - Eidfjord +1233 - Ulvik +4620 - Ulvik +1234 - Granvin +4621 - Voss +1235 - Voss +4621 - Voss +1238 - Kvam +4622 - Kvam +1241 - Fusa +4624 - Bjørnafjorden +1242 - Samnanger +4623 - Samnanger +1243 - Os +4624 - Bjørnafjorden +1244 - Austevoll +4625 - Austevoll +1245 - Sund +4626 - Øygarden +1246 - Fjell +4626 - Øygarden +1247 - Askøy +4627 - Askøy +1251 - Vaksdal +4628 - Vaksdal +1252 - Modalen +4629 - Modalen +1253 - Osterøy +4630 - Osterøy +1256 - Meland +4631 - Alver +1259 - Øygarden +4626 - Øygarden +1260 - Radøy +4631 - Alver +1263 - Lindås +4631 - Alver +1264 - Austrheim +4632 - Austrheim +1265 - Fedje +4633 - Fedje +1266 - Masfjorden +4634 - Masfjorden +1401 - Flora +4602 - Kinn +1411 - Gulen +4635 - Gulen +1412 - Solund +4636 - Solund +1413 - Hyllestad +4637 - Hyllestad +1416 - Høyanger +4638 - Høyanger +1417 - Vik +4639 - Vik +1418 - Balestrand +4640 - Sogndal +1419 - Leikanger +4640 - Sogndal +1420 - Sogndal +4640 - Sogndal +1421 - Aurland +4641 - Aurland +1422 - Lærdal +4642 - Lærdal +1424 - Årdal +4643 - Årdal +1426 - Luster +4644 - Luster +1428 - Askvoll +4645 - Askvoll +1429 - Fjaler +4646 - Fjaler +1430 - Gaular +4647 - Sunnfjord +1431 - Jølster +4647 - Sunnfjord +1432 - Førde +4647 - Sunnfjord +1433 - Naustdal +4647 - Sunnfjord +1438 - Bremanger +4648 - Bremanger +1439 - Vågsøy +4602 - Kinn +1441 - Selje +4649 - Stad +1443 - Eid +4649 - Stad +1444 - Hornindal +1577 - Volda +1445 - Gloppen +4650 - Gloppen +1449 - Stryn +4651 - Stryn +1502 - Molde +1506 - Molde +1504 - Ålesund +1507 - Ålesund +1519 - Volda +1577 - Volda +1523 - Ørskog +1507 - Ålesund +1524 - Norddal +1578 - Fjord +1526 - Stordal +1578 - Fjord +1529 - Skodje +1507 - Ålesund +1534 - Haram +1507 - Ålesund +1543 - Nesset +1506 - Molde +1545 - Midsund +1506 - Molde +1546 - Sandøy +1507 - Ålesund +1548 - Fræna +1579 - Hustadvika +1551 - Eide +1579 - Hustadvika +1571 - Halsa +5055 - Heim +1805 - Narvik +1806 - Narvik +1849 - Hamarøy - Hábmer +1875 - Hamarøy +1850 - Divtasvuodna - Tysfjord +1806 - Narvik +1852 - Tjeldsund +5412 - Tjeldsund +1854 - Ballangen +1806 - Narvik +1902 - Tromsø +5401 - Tromsø +1903 - Harstad - Hárstták +5402 - Harstad +1911 - Kvæfjord +5411 - Kvæfjord +1913 - Skånland +5412 - Tjeldsund +1917 - Ibestad +5413 - Ibestad +1919 - Gratangen +5414 - Gratangen +1920 - Loabák - Lavangen +5415 - Loabák - Lavangen +1922 - Bardu +5416 - Bardu +1923 - Salangen +5417 - Salangen +1924 - Målselv +5418 - Målselv +1925 - Sørreisa +5419 - Sørreisa +1926 - Dyrøy +5420 - Dyrøy +1927 - Tranøy +5421 - Senja +1928 - Torsken +5421 - Senja +1929 - Berg +5421 - Senja +1931 - Lenvik +5421 - Senja +1933 - Balsfjord +5422 - Balsfjord +1936 - Karlsøy +5423 - Karlsøy +1938 - Lyngen +5424 - Lyngen +1939 - Storfjord - Omasvuotna - Omasvuono +5425 - Storfjord - Omasvuotna - Omasvuono +1940 - Gáivuotna - Kåfjord - Kaivuono +5426 - Gáivuotna - Kåfjord - Kaivuono +1941 - Skjervøy +5427 - Skjervøy +1942 - Nordreisa - Ráisa - Raisi +5428 - Nordreisa +1943 - Kvænangen +5429 - Kvænangen +2002 - Vardø +5404 - Vardø +2003 - Vadsø +5405 - Vadsø +2004 - Hammerfest +5406 - Hammerfest +2011 - Guovdageaidnu - Kautokeino +5430 - Guovdageaidnu-Kautokeino +2012 - Alta +5403 - Alta +2014 - Loppa +5432 - Loppa +2015 - Hasvik +5433 - Hasvik +2017 - Kvalsund +5406 - Hammerfest +2018 - Måsøy +5434 - Måsøy +2019 - Nordkapp +5435 - Nordkapp +2020 - Porsanger - Porsángu - Porsanki +5436 - Porsanger - Porsáŋgu - Porsanki +2021 - Kárášjohka - Karasjok +5437 - Kárášjohka-Karasjok +2022 - Lebesby +5438 - Lebesby +2023 - Gamvik +5439 - Gamvik +2024 - Berlevåg +5440 - Berlevåg +2025 - Deatnu - Tana +5441 - Deatnu-Tana +2027 - Unjárga - Nesseby +5442 - Unjárga-Nesseby +2028 - Båtsfjord +5443 - Båtsfjord +2030 - Sør-Varanger +5444 - Sør-Varanger +5004 - Steinkjer +5006 - Steinkjer +5005 - Namsos +5007 - Namsos +5011 - Hemne +5055 - Heim +5012 - Snillfjord +5055 - Heim +5013 - Hitra +5056 - Hitra +5015 - Ørland +5057 - Ørland +5016 - Agdenes +5059 - Orkland +5017 - Bjugn +5057 - Ørland +5018 - Åfjord +5058 - Åfjord +5019 - Roan +5058 - Åfjord +5023 - Meldal +5059 - Orkland +5024 - Orkdal +5059 - Orkland +5030 - Klæbu +5001 - Trondheim +5039 - Verran +5006 - Steinkjer +5040 - Namdalseid +5007 - Namsos +5048 - Fosnes +5007 - Namsos +5050 - Vikna +5060 - Nærøysund +5051 - Nærøy +5060 - Nærøysund \ No newline at end of file diff --git a/data/regref_fylke.rda b/data/regref_fylke.rda new file mode 100644 index 0000000000000000000000000000000000000000..f72068a71e885eae9c7d29c8fcbfbdc2f8fc0f92 GIT binary patch literal 637 zcmZ>Y%CIzaj8qGb+~cgL%fLM4|KI=L&M-JJ*FP{#p6{^#|Gfnc3=9qm3=9q&3=Av` zj0c$Z+%{w|F<KVvzKECM0t4d$1_n0A1u9-y{#o-Tu&-QTVjsc)0_>7TnahNg6%yRk zdIVdfOb#$K2Duul%}TZP51gRBa@oZt$2^}JN}8Bl+$gEqE5&5;YFo&}b>Akr|8!aY z*!0iS&B~0y>o>0snJD+`kGX!4%6tFGkAlrV`lczTDso4fCM{aF=xWsI*c{!dGgb#5 z^z{uloUUfsawU?(XzGnfp94H?0-*;N-(J1xfVb~;VH;5ihx3dL0&z@jHN{U2=W+k| z_I+i@otath5BY1VXm~7IqI~#xCa1KPhda-Tz(7|nt)S$jcS-sin0&czi??Vb_3Tky zCed2nIwd6hqtDbO4rfBP<OaIEYFcuvl{rLWfi_!*!;Hg6T0PaP9!)GbC*cq>IfCnD znWL)G#msrHwnX|XE$s=}S($R+%g)JdRZIQ*R~7TeJn0LbIdN9uob5(EY1(mNljnO^ zEMxVWvno;l-6NTF^_R&nUwnRGafWMNy;GXg=LOTY>AqL&Nz@8?K20n=L(}y03|^&~ zA5721M)(}v8X6i}qk1v%Q}2sYF+oW`7kw^H`2O;l)WwFy53Ibs-_BD1WH!fa?xviV zvp3tE$+YXec<V;?v_rn%-40GE&6{>-N>Zwt#>UD`xz_V!n%9J+^ncw_&YSkjl5gfu zK8`)5vidTQrWt(j+*j(yxOMl8X%@E1i)-el&$9fY+FEdZ#-FF^SqfX2xu;A&#kq;; xpu_sRSDLgK9tfO%{;*)Xb@q|D6Xn;uo5e1?;rElJ^^e|pEawsu??^qm001&GAB6w_ literal 0 HcmV?d00001 diff --git a/data/regref_kommune.rda b/data/regref_kommune.rda new file mode 100644 index 0000000000000000000000000000000000000000..9f0de68a9d17baed66c1881879da631583d81632 GIT binary patch literal 7770 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 literal 0 HcmV?d00001 diff --git a/inst/extdata/SSB_t03794_bruttoverdi_fylke2020_1996_2018.json b/inst/extdata/SSB_t03794_bruttoverdi_fylke2020_1996_2018.json deleted file mode 100644 index 8e7edbd..0000000 --- a/inst/extdata/SSB_t03794_bruttoverdi_fylke2020_1996_2018.json +++ /dev/null @@ -1 +0,0 @@ -{"dataset":{"status":{"15":"..","82":"..","85":"..","88":"..","89":"..","90":"..","105":"..","106":"..","110":"..","111":"..","128":"..","129":"..","130":"..","131":"..","132":"..","133":"..","134":"..","135":"..","136":"..","137":"..","151":"..","152":"..","153":"..","154":"..","155":"..","156":"..","157":"..","158":"..","159":"..","160":"..","174":"..","175":"..","176":"..","177":"..","178":"..","179":"..","180":"..","181":"..","182":"..","183":"..","197":"..","198":"..","199":"..","200":"..","201":"..","202":"..","203":"..","204":"..","205":"..","206":"..","220":"..","221":"..","222":"..","223":"..","224":"..","225":"..","226":"..","227":"..","228":"..","229":"..","243":"..","244":"..","245":"..","246":"..","247":"..","248":"..","249":"..","250":"..","251":"..","252":".."},"dimension":{"Region":{"label":"region","category":{"index":{"F-30":0,"F-03":1,"F-34":2,"F-38":3,"F-42":4,"F-11":5,"F-46":6,"F-15":7,"F-50":8,"F-18":9,"F-54":10},"label":{"F-30":"Viken","F-03":"Oslo","F-34":"Innlandet","F-38":"Vestfold og Telemark","F-42":"Agder","F-11":"Rogaland","F-46":"Vestland","F-15":"Møre og Romsdal","F-50":"Trøndelag","F-18":"Nordland","F-54":"Troms og Finnmark"}},"link":{"describedby":[{"extension":{"Region":"urn:ssb:classification:klass:104 urn:ssb:classification:klass:131"}}]}},"ContentsCode":{"label":"statistikkvariabel","category":{"index":{"Bruttoverdi":0},"label":{"Bruttoverdi":"Bruttoverdi"},"unit":{"Bruttoverdi":{"base":"1000 kr","decimals":0}}},"link":{"describedby":[{"extension":{"Bruttoverdi":"urn:ssb:conceptvariable:vardok:1327"}}]}},"Tid":{"label":"år","category":{"index":{"1996":0,"1997":1,"1998":2,"1999":3,"2000":4,"2001":5,"2002":6,"2003":7,"2004":8,"2005":9,"2006":10,"2007":11,"2008":12,"2009":13,"2010":14,"2011":15,"2012":16,"2013":17,"2014":18,"2015":19,"2016":20,"2017":21,"2018":22},"label":{"1996":"1996","1997":"1997","1998":"1998","1999":"1999","2000":"2000","2001":"2001","2002":"2002","2003":"2003","2004":"2004","2005":"2005","2006":"2006","2007":"2007","2008":"2008","2009":"2009","2010":"2010","2011":"2011","2012":"2012","2013":"2013","2014":"2014","2015":"2015","2016":"2016","2017":"2017","2018":"2018"}}},"id":["Region","ContentsCode","Tid"],"size":[11,1,23],"role":{"geo":["Region"],"metric":["ContentsCode"],"time":["Tid"]}},"label":"03794: Bruttoverdi. Avvirkning for salg (1 000 kr), etter region, statistikkvariabel og år","source":"Statistisk sentralbyrå","updated":"2019-08-30T06:00:00Z","value":[688437,731740,651045,677894,603625,659631,624128,595754,663740,749339,636062,808231,761229,529227,833704,null,703196,639206,892052,916385,884125,978716,1202281,18031,16181,11634,14363,10599,10581,13318,9827,10998,9328,6592,9388,9082,12543,9742,10362,11987,11924,15697,12375,14240,6480,22796,1031702,1164366,1074636,1110909,1042701,1093846,971295,910009,1019639,1243145,954002,1353628,1214096,883165,1241378,1333493,1328547,1260879,1464108,1406322,1386140,1530368,1822837,303489,336942,328252,325428,320377,304536,252384,217575,244935,273207,256305,353113,343620,null,317882,317311,null,209153,290411,null,null,null,408620,187554,198136,172644,178957,173353,171428,140135,145697,146225,165228,124163,146415,170487,null,null,192443,170267,161628,null,null,215139,244881,300708,17987,16136,7989,14116,14826,15284,13526,17786,19170,17988,15843,16887,30349,null,null,null,null,null,null,null,null,null,null,58038,41017,30167,41887,38627,41920,38134,39159,46038,42276,26546,37388,44297,null,null,null,null,null,null,null,null,null,null,29994,25276,18971,22320,24511,25556,22524,23599,21794,22965,16862,24157,28387,null,null,null,null,null,null,null,null,null,null,308876,288172,271344,280521,273755,273763,229748,208754,209499,243733,243605,283693,286044,null,null,null,null,null,null,null,null,null,null,36398,41653,33596,51142,50733,65955,50463,46671,51233,45638,37045,44800,46249,null,null,null,null,null,null,null,null,null,null,28722,18157,8145,22520,14694,13082,15178,15651,15537,16066,1379,845,344,null,null,null,null,null,null,null,null,null,null]}} \ No newline at end of file diff --git a/man/regnavn.at.ref.yr.Rd b/man/regnavn.at.ref.yr.Rd new file mode 100644 index 0000000..8f062f2 --- /dev/null +++ b/man/regnavn.at.ref.yr.Rd @@ -0,0 +1,24 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/no_regioninndeling.R +\name{regnavn.at.ref.yr} +\alias{regnavn.at.ref.yr} +\title{Region navn og region kode for gitt år} +\usage{ +regnavn.at.ref.yr(regionstat, ref.yr = year(now()), reg_level = "fylke") +} +\arguments{ +\item{reg_level}{is the region level in the regionstat ("fylke" | kommune")} +} +\value{ +tibble having the regional statistics including the regional +names and codes for the reference year in question +} +\description{ +Denne funksjonen tar regionkoder og regionnavn fra en regional statistikk, +tar inn tabell som viser historiske endringer i regional inndeling av Norge +og gjør om til riktige koder og navn for et gitt referanseår (ref.yr) +Funksjonen fungerer for fylkesnivå inkludert landet ELLER for kommunenivå. +} +\examples{ +regnavn.at.ref.yr(regionstat = t12750(), ref.yr = 2020 ) \%>\% glimpse() +} diff --git a/man/ssb_skog_omsetning.Rd b/man/ssb_skog_omsetning.Rd deleted file mode 100644 index 60f8206..0000000 --- a/man/ssb_skog_omsetning.Rd +++ /dev/null @@ -1,18 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/ssb_skogsavvirkning.R -\name{ssb_skog_omsetning} -\alias{ssb_skog_omsetning} -\title{SSB skogsavvirkning for salg: omsetning} -\usage{ -ssb_skog_omsetning() -} -\value{ -en tibble med pris og volum fordelt på fylker og sortimentgrupper og år. -} -\description{ -Denne henter tabellene for prishistorikk t12750 og hogstvolum t03895 og setter dem sammen. -https://www.ssb.no/statbank/list/skogav -} -\examples{ -ssb_skog_omsetning() -} diff --git a/man/t03794.Rd b/man/t03794.Rd new file mode 100644 index 0000000..e0cf5f5 --- /dev/null +++ b/man/t03794.Rd @@ -0,0 +1,23 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/ssb_skogsavvirkning.R +\name{t03794} +\alias{t03794} +\title{Skogsavvirkning bruttoverdi t03794 +bruttoverdi per år av tømmer, SSB tabell 03794} +\usage{ +t03794(geolevel = "fylke") +} +\arguments{ +\item{geolevel}{} +} +\value{ +en tibble med hele datasetet. +} +\description{ +Tabellen gir totalverdi av tømmer solgt per år og geografisk enhet, fra 1996 til 2018. +Litt usikker om energivirkesortimenter og ved er med. +https://www.ssb.no/statbank/list/skogav +} +\examples{ + t03794() +} -- GitLab