Skip to content
Snippets Groups Projects
Commit 9325cb07 authored by Helmer Belbo's avatar Helmer Belbo
Browse files

Adding functions to read SSB's skogsavvrirkning datasets.

parent dc07071e
No related branches found
No related tags found
No related merge requests found
#' 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)
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment