jeudi 21 juin 2012

Résultats gagnants par circonscription du 2nd tour des élections législatives 17 juin 2012 - Fichier Remanié d'après Data Publica

L'excellent site data publica alimente très rapidement sa plate-forme de nouvelles données en licence ouverte. Dernières en date, les données des résultats des législatives 2012 par circonscriptions.


Ce fichier est très complet et permet d'avoir les résultats pour chaque circonscription relatives aux différents partis.

J'ai voulu créer un fichier remanié ne faisant apparaître que les gagnants. Le voici en téléchargement au format csv:


Plan:
  • Pourquoi remanier le fichier
  • Quel métier exercent les candidats ayant remporté les élections législatives? 
  • Autres explorations
    • Petits camemberts
    • Triangulaires
    • Abstention
    • Extrême-Droite
  • Les éléments clés du code ayant permis cette transformation
  • Le code R sous github



Pourquoi remanier le fichier

Il n'est pas très aisé d'avoir, à partir du fichier d'origine, les gagnants pour chaque circonscription. Pour chaque circonscription, les résultats relatifs aux candidats sont ordonnés en colonnes mais pas selon le pourcentage de vote obtenu.

Il y a donc une structure en colonnes correspondant aux résultats pour un candidat qui est répliquée de 2 à trois fois.

Aussi, les partis d'appartenance politique sont mentionnés par des codes. Les libellés de ces derniers sont récupérables depuis le fichier des résultats du second tour des élections présidentielles. Je les ai aussi intégrés dans le fichier final.

Un remaniement du fichier serait nécessaire afin d'avoir un résultat synthétique des résultats. Il serait cohérent d'identifier les gagnants dans cette masse de données. C'est le but du traitement réalisé.

Il faut signaler que le fichier comporte un tronc commun: des données générales permettant d'analyser entre autres choses l'abstention.

En gros, l'opération que j'ai réalisée consiste à migrer de cette structure native de fichier à celle-ci:


Aussi ai-je rajouté une colonne: le nombre de candidats présents au second tour pour chaque circonscription. Ce nombre va de 1 à 3. Il permet de déterminer les triangulaires.

J'espère que ce fichier vous aura permis de réaliser des analyses, voire des cartes sympathiques. D'ailleurs, voici un article mentionnant un fichier géographique des circonscriptions: http://www.joelgombin.fr/?p=649

Voici quelques petites statistiques que j'ai réalisées sur la base de ce fichier.


Quelle profession exercent les gagnants?

Un article du Figaro intitulé "Les députés issus des classes populaires ont disparu" indique que ces derniers sont à présents largement diplômés, contrairement à avant où ils étaient surtout issus de milieux modestes.

Regardons quel métier ils excercent. Pour cela, il a fallu que je récupère le fichier des candidats aux élections législatives sur le site de data publica.

Distribution des professions exercées par les députés

Dans l'article, il est également dit que côté Socialistes, la grande majorité des élus provient de l'enseignement secondaire et que le privé est davantage représenté côté Droite. Regardons le pourcentage de métier entre Gauche (Socialiste) et Droite (UMP). Cela est confirmé.

Gauche Droite: les métiers des députés

Autres explorations du fichier


Petits camemberts


Voici des petits camemberts montrant la répartition des sexes et des partis représentés.


Très largement, l'Assemblée Nationale se partage entre Socialistes et candidats de l'UMP et les hommes sont plus largements présents que les femmes, près des 3/4.


Triangulaires

Ce tableau présente les différentes circonscriptions et partis présents aux triangulaires.

    Libellé.du.département Code.de.la.circonscription Nuance Nuance.1 Nuance.2
2                      AIN                          2    DVG      UMP       FN
6                    AISNE                          1    SOC      DVG      NCE
10                   AISNE                          5    RDG      UMP       FN
31                    AUBE                          1    RDG      UMP       FN
45        BOUCHES DU RHONE                          6    VEC      UMP       FN
47        BOUCHES DU RHONE                          8    SOC      UMP       FN
49        BOUCHES DU RHONE                         10    VEC      UMP       FN
51        BOUCHES DU RHONE                         12    SOC      UMP       FN
54        BOUCHES DU RHONE                         15    DVG      UMP       FN
75             HAUTE CORSE                          1    RDG      REG      UMP
93                   DOUBS                          4    SOC      UMP       FN
115                   GARD                          1    SOC      NCE       FN
116                   GARD                          2    SOC      UMP       FN
117                   GARD                          3    SOC      UMP       FN
120                   GARD                          6    VEC      UMP       FN
146                HERAULT                          6    SOC      UMP       FN
147                HERAULT                          7    SOC      UMP       FN
186                  LOIRE                          4    VEC      UMP       FN
245                MOSELLE                          4    SOC      UMP       FN
248                MOSELLE                          7    SOC      PRV       FN
275                   OISE                          2    SOC      UMP       FN
279                   OISE                          6     FG      UMP       FN
300   PYRENEES ATLANTIQUES                          2    SOC      CEN      UMP
306    PYRENEES ORIENTALES                          1    DVG      UMP       FN
321              HAUT RHIN                          6    SOC      NCE       FN
420                    VAR                          2    SOC      UMP       FN
421                    VAR                          3    RDG      UMP       FN
425                    VAR                          7    DVG      UMP       FN
426                    VAR                          8    SOC      UMP       FN
427               VAUCLUSE                          1    SOC      UMP       FN
429               VAUCLUSE                          3    SOC      UMP       FN
467         HAUTS DE SEINE                          6    SOC      DVD      DVD
470         HAUTS DE SEINE                          9    SOC      UMP      DVD
529       WALLIS-ET-FUTUNA                          1    RDG      DVG      DVD


Abstention 

Les 20 départements comportant le plus d'abstention sont les suivants

    Libellé.du.département Code.de.la.circonscription X..Abs.Ins
538 FRANCAIS DE L'ETRANGER                          8      87.23
532 FRANCAIS DE L'ETRANGER                          2      84.45
539 FRANCAIS DE L'ETRANGER                          9      81.74
531 FRANCAIS DE L'ETRANGER                          1      80.93
533 FRANCAIS DE L'ETRANGER                          3      79.44
535 FRANCAIS DE L'ETRANGER                          5      79.24
536 FRANCAIS DE L'ETRANGER                          6      77.62
540 FRANCAIS DE L'ETRANGER                         10      76.96
537 FRANCAIS DE L'ETRANGER                          7      75.92
534 FRANCAIS DE L'ETRANGER                          4      73.97
541 FRANCAIS DE L'ETRANGER                         11      73.93
481      SEINE SAINT-DENIS                          7      68.38
478      SEINE SAINT-DENIS                          4      67.61
485      SEINE SAINT-DENIS                         11      67.12
70                    CHER                          2      66.43
271                   NORD                         19      66.28
475      SEINE SAINT-DENIS                          1      66.23
462         HAUTS DE SEINE                          1      66.08
513             MARTINIQUE                          3      64.93
381         SEINE MARITIME                          8      64.80


Comme le mentionnait Data Publica sur son site, les fançais de l'étranger arrivent en tête.


Extrême-Droite 

Les circonscriptions avec un candidat gagnant d'extrême droite:
 
    Libellé.du.département Code.de.la.circonscription             Nom  Prénom
116                   GARD                          2         COLLARD Gilbert
429               VAUCLUSE                          3 MARECHAL-LE PEN  Marion
430               VAUCLUSE                          4         BOMPARD Jacques
    Nuance X..Voix.Exp ncandidats
116     FN       42.82          3
429     FN       42.09          3
430    EXD       58.77          2



Il me semblait correct de rendre le mécanisme, la méthode réalisée ouverts, transparents, de la même façon que le sont les données source. Par la suite, vous trouverez les aspects plus techniques liés au code puis enfin le code complet.




Les éléments clés du code

Les lots de colonnes correspondant aux différents panneaux sont stockés dans une liste.
resL <- list()
 
resL[[1]] <- res[,17:24]
resL[[2]] <- res[,25:32] 
resL[[3]] <- res[,33:40]

On détecte quel est le lot/le panneau comportant la valeur maximale
wch <- sapply(1:nrow(res), function(x) which.max(sapply(1:3, function(i) resL[[i]][x, 6])))

On emploie un mécanisme similaire pour avoir le nombre de candidats:
df$ncandidats <- sapply(1:nrow(res), function(x) length(na.omit(sapply(1:3, function(i) resL[[i]][x,1]))))

On détecte par la suite quelle est la ligne à sélectionner pour le data frame final. On crée ce dernier en assemblant les lignes.
rowSel <- lapply(1:nrow(res), function(x) resL[[wch[x]]][x, ])
dfSel <- do.call("rbind", rowSel)


Le code R sous github



Aucun commentaire:

Enregistrer un commentaire