Commit 9325cb07 authored by Helmer Belbo's avatar Helmer Belbo
Browse files

Adding functions to read SSB's skogsavvrirkning datasets.

parent dc07071e
#' 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)
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment