diff --git a/R/ssb_skogsavvirkning.R b/R/ssb_skogsavvirkning.R new file mode 100644 index 0000000000000000000000000000000000000000..8afac9d5db1f9e0e10ed086ac8693937ddf8ee0e --- /dev/null +++ b/R/ssb_skogsavvirkning.R @@ -0,0 +1,185 @@ +#' Skogsavvirkning priser t12750 +#' prisstatistikk for tømmer fra SSB tabell 12750 +#' +#' Tabellen gir snittpris per sortiment på fylkesnivå, fra 2006 til 2018. +#' Virke blir også klassifisert på treslag og sortimentgrupper (tømmmer, massevirke, sams, annet) +#' https://www.ssb.no/statbank/list/skogav +#' +#' @return en tibble med hele datasetet. +#' @export +#' +#' @examples +#' t12750() +t12750 <- function(){ + #metadt = ApiData("http://data.ssb.no/api/v0/no/table/12750", returnMetaData = TRUE) + + pxdt <- PxWebApiData::ApiData("http://data.ssb.no/api/v0/no/table/12750" , #returnMetaFrames = T) + # Gjennomsnittspris, etter sortiment (kr per m3) (F) + # tidsserie 2006 - 2018 + # NB: 0 betyr NULL + Region = T, ContentsCode = T, + Tid = T, + Treslag = T + ) + regioner_utvalg <- dplyr::as.tbl(pxdt[[2]]) %>% + dplyr::group_by(Region) %>% dplyr::summarize(., harpris = sum(value, na.rm = T)) %>% + dplyr::filter(., harpris > 0) %>% + dplyr::select(., Region) %>% dplyr::pull(.) + + priser <- dplyr::as.tbl(pxdt[[1]]) %>% + dplyr::rename(., kategoritekst = sortiment, pris = value) + ds <- as.tbl(pxdt[[2]]) %>% + rename(., region_kode = Region, ar = Tid, virkeskategori = Treslag, Pris = value) #Modding variable names + priser <- priser %>% + dplyr::bind_cols(., (ds %>% dplyr::select(., region_kode, virkeskategori))) %>% + dplyr::filter(., region_kode %in% regioner_utvalg) %>% + dplyr::mutate(., + treslag = dplyr::case_when( + stringr::str_detect(kategoritekst, "Gran") ~ "Gran", + stringr::str_detect(kategoritekst, "Furu") ~ "Furu", + stringr::str_detect(kategoritekst, "Lauvtre") ~ "Lauv", + TRUE ~ "Ukjent" + ), + sortimentgruppe = dplyr::case_when( + (virkeskategori %in% c("1160", "2160") | + stringr::str_sub(virkeskategori, 1,2) %in% c("13", "23", "1160", "2160")) ~ "sams", + stringr::str_sub(virkeskategori, 1,2) %in% c("11", "21", "31") ~ "tømmer", + stringr::str_sub(virkeskategori, 1,2) %in% c("14", "24", "34") ~ "massevirke", + TRUE ~ "annet" + ) + ) + return(priser) +} + + + + +#' Skogsavvirkning priser t06216 +#' prisstatistikk for tømmer SSB tabell 06216 +#' +#' Tabellen gir snittpris per sortiment på fylkesnivå, fra 1996 til 2017. +#' Virke blir også klassifisert på treslag og sortimentgrupper (tømmmer, massevirke, sams, annet) +#' https://www.ssb.no/statbank/list/skogav#' +#' +#' +#' @return en tibble med hele datasetet. +#' @export +#' +#' @examples +#' t06216() +t06216 <- function(){ # NB: avslutta, tidsserie 1996 - 2017 + + # Gjennomsnittspris, etter sortiment (kr per m?) (F) + # ApiData("http://data.ssb.no/api/v0/no/table/06216", returnMetaData = TRUE) + pxdt <- PxWebApiData::ApiData("http://data.ssb.no/api/v0/no/table/06216", + Region = T, + Tid = T, + Treslag = T ) + regioner_utvalg <- dplyr::as.tbl(pxdt[[2]]) %>% + dplyr::group_by(Region) %>% dplyr::summarize(., harpris = sum(value, na.rm = T)) %>% + dplyr::filter(., harpris > 0) %>% + dplyr::pull(., Region) + + + priser <- as.tbl(pxdt[[1]]) %>% + dplyr::rename(., kategoritekst = sortiment, pris = value) + + ds <- dplyr::as.tbl(pxdt[[2]]) %>% + dplyr::rename(., region_kode = Region, ar = Tid, virkeskategori = Treslag, Pris = value) #Correcting missleading variable names + + priser <- + priser %>% dplyr::bind_cols(., (ds %>% dplyr::select(., region_kode, virkeskategori))) %>% + dplyr::filter(., region_kode %in% regioner_utvalg) %>% + dplyr::mutate(., + treslag = dplyr::case_when( + stringr::str_detect(kategoritekst, "Gran") ~ "Gran", + stringr::str_detect(kategoritekst, "Furu") ~ "Furu", + stringr::str_detect(kategoritekst, "Lauvtre") ~ "Lauv", + TRUE ~ "Ukjent" + ), + sortimentgruppe = dplyr::case_when( + (virkeskategori %in% c("1160", "2160") | + stringr::str_sub(virkeskategori, 1,2) %in% c("13", "23", "1160", "2160")) ~ "sams", + stringr::str_sub(virkeskategori, 1,2) %in% c("11", "21", "31") ~ "tømmer", + stringr::str_sub(virkeskategori, 1,2) %in% c("14", "24", "34") ~ "massevirke", + TRUE ~ "annet" + ) + ) + + + return(priser) +} + +#' Skogsavvirkning volum t03895 +#' Hogststatistikk for tømmer SSB tabell 03895 +#' 1996 - 2018 +#' #' +#' Tabellen gir avvirkning for salg, etter sortiment, volum, kommune. +#' Volum e avregningsvolum, m3pris +#' +#' @param geolevel geografic resolution of the data; landet, fylke or kommune +#' +#' @return en tibble +#' @export +#' +#' @examples +#' t03895() +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'" )} + 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] + + geolevels <- list(kommune = kommuner, fylke = fylker, landet = landet) + geoselector <- which(names(geolevels) == geolevel) + + pxdt <- PxWebApiData::ApiData("http://data.ssb.no/api/v0/no/table/03895", + #Region = T, #c(landet, geolevels[[geoselector]]), + Region = c(landet, geolevels[[geoselector]]), + Tid = T, #c("2010", "2016", "2017"), + Treslag = T # 10i) + ) + + regioner_utvalg <- + dplyr::as.tbl(pxdt[[1]]) %>% + dplyr::rename(., volum_m3pris = value) %>% + dplyr::group_by(region) %>% + dplyr::summarize(., volumtot = sum(volum_m3pris, na.rm = T)) %>% + dplyr::filter(., volumtot > 0) %>% + dplyr::pull(., region) + + volum <- dplyr::as.tbl(pxdt[[1]]) %>% + dplyr::rename(., kategoritekst = sortiment, volum_m3pris = value) + + ds <- dplyr::as.tbl(pxdt[[2]]) %>% + dplyr::rename(., region_kode = Region, ar = Tid, virkeskategori = Treslag) + + volum <- volum %>% + dplyr::bind_cols(., (ds %>% dplyr::select(., region_kode, virkeskategori))) %>% + dplyr::filter(., region %in% regioner_utvalg) %>% + dplyr::mutate(., + treslag = dplyr::case_when( + stringr::str_detect(kategoritekst, "Gran") ~ "Gran", + stringr::str_detect(kategoritekst, "Furu") ~ "Furu", + stringr::str_detect(kategoritekst, "Lauvtre") ~ "Lauv", + TRUE ~ "Ukjent" + ), + sortimentgruppe = dplyr::case_when( + (virkeskategori %in% c("1160", "2160") | + stringr::str_sub(virkeskategori, 1,2) %in% c("13", "23", "1160", "2160")) ~ "sams", + stringr::str_sub(virkeskategori, 1,2) %in% c("11", "21", "31") ~ "tømmer", + stringr::str_sub(virkeskategori, 1,2) %in% c("14", "24", "34") ~ "massevirke", + TRUE ~ "annet" + ) + ) + return(volum) + +} + + + +