data-raw/rne.R

## code to prepare `rne` dataset goes here

library(readr)
library(dplyr)
library(lubridate)
library(readxl)
# library(purrr) Il faudrait améliorer le code avec du purrr

#paramétrage de la lecture des fichiers CSV mis à jour
lecture_csv <- function(fichier){
  nom <- read_delim(fichier,
                          "\t", escape_double = FALSE, locale = locale(encoding = "UTF-8"),
                          trim_ws = TRUE, skip = 0)
  return(nom)
}

# fichiers <- list.files("data-raw/rne",pattern = "csv",full.names = TRUE)
# test <- fichiers %>% map(lecture_csv)
# rne_cm <- as.data.frame(test[1])

rne_cm <- lecture_csv("data-raw/rne/rne-cm.csv")
rne_cd <- lecture_csv("data-raw/rne/rne-cd.csv")
rne_cr <- lecture_csv("data-raw/rne/rne-cr.csv")
rne_dep <- lecture_csv("data-raw/rne/rne-dep.csv")
rne_epci <- lecture_csv("data-raw/rne/rne-epci.csv")
rne_ma <- lecture_csv("data-raw/rne/rne-ma.csv")
rne_maires <- lecture_csv("data-raw/rne/rne-maires.csv")
rne_rpe <- lecture_csv("data-raw/rne/rne-rpe.csv")
rne_sen <- lecture_csv("data-raw/rne/rne-sen.csv")

#Fonction qui crée un identifiant dans chaque fichier
modif_csv <- function(data){
  data <- data %>%
    mutate(`Date de naissance`=as.Date(`Date de naissance`,format="%d/%m/%Y"),
           IDENT = paste(`Prénom de l'élu`,`Nom de l'élu`,`Date de naissance`)) %>%
    select(`Nom de l'élu`,
           `Prénom de l'élu`,
           `Code sexe`,
           `Date de naissance`,
           `Code de la catégorie socio-professionnelle`,
           IDENT)
  return(data)
}

rne_cm <- modif_csv(rne_cm)
rne_cd <- modif_csv(rne_cd)
rne_cr <- modif_csv(rne_cr)
rne_dep <- modif_csv(rne_dep)
rne_epci <- modif_csv(rne_epci)
rne_ma <- modif_csv(rne_ma)
rne_maires <- modif_csv(rne_maires)
rne_rpe <- modif_csv(rne_rpe)
rne_sen <- modif_csv(rne_sen)

#Fusion en un seul fichier
RNE_2020 <- rbind(rne_cm,rne_epci)
RNE_2020 <- rbind(RNE_2020,rne_cd)
RNE_2020 <- rbind(RNE_2020,rne_cr)
RNE_2020 <- rbind(RNE_2020,rne_ma)
RNE_2020 <- rbind(RNE_2020,rne_rpe)
RNE_2020 <- rbind(RNE_2020,rne_sen)
RNE_2020 <- rbind(RNE_2020,rne_dep)
RNE_2020 <- rbind(RNE_2020,rne_maires)

#Elimination des doublons
RNE_2020 <- RNE_2020  %>% distinct()

#Fonction qui crée une nouvelle variable booléenne
modif_boolean <- function(data,nom) {
  x <- data %>%
    mutate({{nom}} := TRUE) %>%
    select(IDENT,{{nom}})
  return(x)
}

rne_cm <- modif_boolean(rne_cm,`Conseiller municipal`)
rne_cd <- modif_boolean(rne_cd,`Conseiller départemental`)
rne_cr <- modif_boolean(rne_cr,`Conseiller régional`)
rne_dep <- modif_boolean(rne_dep,`Député`)
rne_epci <- modif_boolean(rne_epci,`Conseiller communautaire`)
rne_ma <- modif_boolean(rne_ma,`Conseiller de l'Assemblée de Corse`)
rne_maires <- modif_boolean(rne_maires,`Maire`)
rne_rpe <-modif_boolean(rne_rpe,`Représentant au Parlement européen`)
rne_sen <- modif_boolean(rne_sen,`Sénateur`)

#Enrichissement de la base de données
enrich_elu <- function(data,var){
  RNE_2020 <- left_join(RNE_2020,data) %>%
    mutate({{var}} := if_else(is.na({{var}}),FALSE,TRUE))
  return(RNE_2020)
}

#Enrichissement de la base de données des élus
RNE_2020 <- enrich_elu(rne_cm,`Conseiller municipal`)
RNE_2020 <- enrich_elu(rne_cd,`Conseiller départemental`)
RNE_2020 <- enrich_elu(rne_cr,`Conseiller régional`)
RNE_2020 <- enrich_elu(rne_dep,`Député`)
RNE_2020 <- enrich_elu(rne_epci,`Conseiller communautaire`)
RNE_2020 <- enrich_elu(rne_ma,`Conseiller de l'Assemblée de Corse`)
RNE_2020 <- enrich_elu(rne_maires,`Maire`)
RNE_2020 <- enrich_elu(rne_rpe,`Représentant au Parlement européen`)
RNE_2020 <- enrich_elu(rne_sen,`Sénateur`)

#Ajout de l'information sur le nombre de mandats
RNE_2020 <- RNE_2020 %>%
  mutate(`Nombre de mandats` = as.factor(`Conseiller municipal`+
                                          `Conseiller communautaire`+
                                          `Conseiller départemental`+
                                          `Conseiller régional`+
                                          `Conseiller de l'Assemblée de Corse`+
                                          `Représentant au Parlement européen`+
                                          `Sénateur`+
                                          `Député`+
                                          `Maire`))

#Création d'une variable Age (en âge révolu à la fin de l'année 2021)
Auj <- ymd("2021-12-31")
RNE_2020 <- RNE_2020 %>%
  mutate(Age = trunc(time_length(interval(`Date de naissance`,Auj),"years")))

#Récupération du fichier sur Insee.Fr avec les CSP
pcs2003_c_n4_n1_1 <- read_excel("data-raw/rne/pcs2003_c_n4_n1-1.xls",
                                skip = 1) %>%
                    mutate(N3 = as.factor(N3),
                           N2 = as.factor(N2),
                           N1 = as.factor(N1)) %>%
                    select(N1,N2,N3)

RNE_2020 <- RNE_2020 %>%
  mutate(N3=as.factor(`Code de la catégorie socio-professionnelle`))
RNE_2020 <- left_join(RNE_2020,pcs2003_c_n4_n1_1,by="N3")
RNE_2020 <- RNE_2020 %>%
  distinct() %>%
  mutate(N3 = as.factor(N3)) %>%
  rename(PCS = N1) %>% select(-c(`Code de la catégorie socio-professionnelle`,N3,N2))

pcs2003_liste_n1 <- read_excel("data-raw/rne/pcs2003_liste_n1.xls",
                               skip = 1)
pcs2003_liste_n1 <- pcs2003_liste_n1 %>%
  mutate(PCS = as.factor(Code),Label = as.factor(Label))

RNE_2020 <-left_join(RNE_2020,pcs2003_liste_n1,by="PCS") %>%
  select(-c(Code))

rne <- RNE_2020

#Permet de rendre la base de données accesible à l'utilisateur
usethis::use_data(rne, overwrite = TRUE)
jean-seb-2106/statb6 documentation built on Dec. 20, 2021, 10:07 p.m.