Dans un premier temps nous allons transformer les tables des communes de plus de 3500 habitants

# On garde les variables qui nous seront nécessaires dans la suite
T1 <- T1[,c(1,3,5,6)]
colnames(T1) <- c('CODE_DEP','CODE_COMMUNE','NB_INSCRITS','NB_ABSTENTION')

T2 <- T2[,c(1,3,5,6)]
colnames(T2) <- c('CODE_DEP','CODE_COMMUNE','NB_INSCRITS','NB_ABSTENTION')


Dans les communes de moins de 3500 habitants, le vote n’est pas imposer par une liste de candidats. Donc dans ces tables ci-dessous nous avons une ligne par candidat par communes, alors il nous faut supprimer cette répétiton de municipalités. Et c’est ce qui est fait dans le code suivant, tout en sélectionnant les les variables nécéssaires pour la suite.

Dep01_15 <- unique(Dep01_15[,c(1,3,5,6,7)])
Dep16_26 <- unique(Dep16_26[,c(1,3,5,6,7)])
Dep27_34 <- unique(Dep27_34[,c(1,3,5,6,7)])
Dep35_48 <- unique(Dep35_48[,c(1,3,5,6,7)])
Dep49_59 <- unique(Dep49_59[,c(1,3,5,6,7)])
Dep60_69 <- unique(Dep60_69[,c(1,3,5,6,7)])
Dep70_79 <- unique(Dep70_79[,c(1,3,5,6,7)])
Dep80_88 <- unique(Dep80_88[,c(1,3,5,6,7)])
Dep89_95 <- unique(Dep89_95[,c(1,3,5,6,7)])

# On transforme les codes départements en facteur pour nous permettre de réunir ces différentes tables.
Dep27_34[,1] <- factor(Dep27_34[,1])
Dep35_48[,1] <- factor(Dep35_48[,1])
Dep49_59[,1] <- factor(Dep49_59[,1])
Dep60_69[,1] <- factor(Dep60_69[,1])
Dep70_79[,1] <- factor(Dep70_79[,1])
Dep80_88[,1] <- factor(Dep80_88[,1])
Dep89_95[,1] <- factor(Dep89_95[,1])

Dep <- rbind(Dep01_15,Dep16_26,Dep27_34,Dep27_34,Dep35_48,
             Dep49_59,Dep60_69,Dep70_79,Dep80_88,Dep89_95)

# Séparation du premier et deuxième tour
Dep_T1 <- Dep[which(Dep[,3] == 1),-3]
Dep_T2 <- Dep[which(Dep[,3] == 2),-3]

colnames(Dep_T1) <- c('CODE_DEP','CODE_COMMUNE','NB_INSCRITS','NB_ABSTENTION')
colnames(Dep_T2) <- c('CODE_DEP','CODE_COMMUNE','NB_INSCRITS','NB_ABSTENTION')

# Réunification des communes de plus et de moins de 3500 habitants en une seule table
T1 <- unique(rbind(T1,Dep_T1))
T2 <- unique(rbind(T2,Dep_T2))

# On supprime les départements d'outre-mer
test_T1 <- T1[-which(T1[,1] == 'ZA' | T1[,1] == 'ZB' | T1[,1] == 'ZC' | T1[,1] == 'ZD' | T1[,1] == 'ZM' | T1[,1] == 'ZN' | T1[,1] == 'ZP' | T1[,1] == 'ZS' ),]

# Transformation des codes communes pour nous permettre d'obtenir des codes communes similaires à l'INSEE
for(i in 1:length(test_T1[,1])){
  if(grepl("SN",as.character(test_T1[i,2])) == TRUE){
    test_T1[i,5] = strsplit(as.character(test_T1[i,2]),"SN")[[1]][1]
  }
  else if(grepl("056AR",as.character(test_T1[i,2])) == TRUE){
    test_T1[i,5] = as.character(as.numeric(strsplit(as.character(test_T1[i,2]),"AR")[[1]][2]) +100)
  }
  else if(grepl("123SR",as.character(test_T1[i,2])) == TRUE){
    test_T1[i,5] = as.character(as.numeric(strsplit(as.character(test_T1[i,2]),"SR")[[1]][2]) +380)
  }
  else if(grepl("SR",as.character(test_T1[i,2])) == TRUE){
    test_T1[i,5] = strsplit(as.character(test_T1[i,2]),"SR")[[1]][1]
  }
  else if(grepl("055AR",as.character(test_T1[i,2])) == TRUE){
    test_T1[i,5] = as.character(as.numeric(strsplit(as.character(test_T1[i,2]),"AR")[[1]][2]) +200)
  }
  else test_T1[i,5] = as.character(test_T1[i,2])
}

test_T1[,2] <- test_T1[,5]
test_T1 <- test_T1[,-5]
test_T1 <- test_T1[!duplicated(test_T1[,1:2]),]
test_T1 <- test_T1[-which(grepl("AR",as.character(test_T1[,2])) == TRUE),]

# Réunification du code département et code commune pour obtenir un code INSEE qui sera unique à chaque commune
# C'est cette variables qui va nous permettre de relier les tables récupérer à l'INSEE 
for(i in 1:length(test_T1[,1])){
  if(nchar(test_T1[i,2]) == 1){
    test_T1[i,5] = paste(test_T1[i,1],test_T1[i,2],sep="00")
  }
  else if(nchar(test_T1[i,2]) == 2){
    test_T1[i,5] = paste(test_T1[i,1],test_T1[i,2],sep="0")
  }
  else {test_T1[i,5] = paste(test_T1[i,1],test_T1[i,2],sep="")}
  if (nchar(test_T1[i,5]) == 4){
    test_T1[i,5] <- paste('0',test_T1[i,5],sep='')
  }
}

# Vérification qu'il n'y ait aucun doublon
test_T1 <- test_T1[!duplicated(test_T1[,5]),]
colnames(test_T1) <- c('CODE_DEP','CODE_COMMUNE','NB_INSCRITS','NB_ABSTENTION','CODE_INSEE')
test_T1[,6] <- (as.numeric(test_T1$NB_ABSTENTION) / as.numeric(test_T1$NB_INSCRITS) )* 100
names(test_T1)[6] <- c('TX_ABSTENTION')