R/sgf_sfdf.R

Defines functions sgf_sfdf

Documented in sgf_sfdf

#' @name sgf_sfdf
#'
#' @title Créer une table de données géographiques avec des indicateurs de la SGF
#'
#' @description Générer un sf dataframe contenant les indicateurs de la SGF préalablement sélectionnés.
#'
#' @param TYPE_NIVGEO Nom court du niveau géographique ('DEP' pour département, "ARR" pour arrondissement).
#' @param SRC Nom du tableau de données dans lequel se trouvent les indicateurs à récupérer (cf. champ 'TABLEAU' dans la table 'indicateurs_SGF').
#' @param LISTE_VAR_COD Liste des codes des variables à récupérer (cf. champ 'VAR_COD' dans la table 'indicateurs_SGF').
#'
#' @return Renvoie un sf dataframe contenant code et nom du territoire ainsi que les indicateurs sélectionnés.
#'
#' @importFrom dplyr tribble filter distinct pull mutate select left_join case_when group_by summarise ungroup rename mutate_if bind_rows
#' @importFrom janitor clean_names
#' @importFrom tidyr spread gather
#' @import sf
#'
#' @examples
#' \dontrun{
#' # Creation du sf dataframe contenant les indicateurs de cheptels (bovins, ovins, etc...) 
#' issus du recensement de 1872
#' DEP_cheptels_1872 <-
#' sgf_sfdf(TYPE_NIVGEO = "DEP",
#'          SRC ="REC_T17",
#'          LISTE_VAR_COD = c(52, 59, 65, 70, 83, 87, 94))
#'
#'}
#'
#' @details
#' Deux niveaux géographiques sont disponibles : département (TYPE_NIVGEO = 'DEP') et arrondissement ("ARR"). \cr
#'
#'
#' @export

sgf_sfdf <- function(TYPE_NIVGEO, SRC, LISTE_VAR_COD) {
  
  df_data <- data_SGF %>%
    filter(NIVGEO %in% TYPE_NIVGEO) %>%
    filter(SRC_DATA %in% SRC & VAR_COD %in% LISTE_VAR_COD) %>%
    select(CODGEO,ANNEE_GEOGRAPHIE,VAR_LIB, VAL) %>%
    spread(VAR_LIB, VAL) %>%
    clean_names() %>%
    ungroup()
  
  
  annee_geo <- df_data %>% distinct(annee_geographie) %>% pull()
  
  if(TYPE_NIVGEO == "DEP") {
    data <- geo_DEP_SGF_histo %>%
      filter(ANNEE_GEOGRAPHIE %in% annee_geo) %>%
      left_join(df_data %>% select(-annee_geographie),
                by = c("CODGEO" = "codgeo")) %>%
      ungroup()
  }
  
  else {
    data <- geo_ARR_SGF_histo %>%
      filter(ANNEE_GEOGRAPHIE %in% annee_geo) %>%
      left_join(df_data %>% select(-annee_geographie),
                by = c("CODGEO" = "codgeo")) %>%
      ungroup()
  }
  
}
observatoire-territoires/sgf documentation built on Sept. 13, 2024, 1:29 a.m.