Introducció

Aquest tutorial ofereix una introducció breu a com fer un mapa amb R. Els materials son només una pinzellada dels temes tractats al mòdul “Mapes i anàlisi espacial” del Postgrau Analista de Dades per a l’Anàlisi Política i la Gestió Pública de la Universitat de Barcelona (UB).

El tutorial té diferents etapes. En primer lloc, obrirem i prepararem les dades. En segon lloc, farem un mapa coroplètic. En tercer lloc, farem un mapa de punts. Finalment, farem un mapa dinàmic.

Per seguir el tutorial convé que us baixeu les dades. Les trobareu aquí. Trobareu tres arxius: a) Un arxiu excel amb els resultats electorals al Parlament de Catalunya del 2017, b) Un arxiu .csv amb informació sobre les fosses comunes a Catalunya, i c) una carpeta amb els arxius shape (mapa de Catalunya a nivell municipal).

Preparació de les bases de dades

El primer pas és obrir la base de dades. L’arxiu l’hem extret de l’Idescat. Conté els resultats electorals de les eleccions al Parlament de Catalunya de l’any 2017.

Obrim la base de dades i l’assignem a un objecte, el qual anomenem df_ele.

library("readxl")
df_ele <- read_excel("cat_2017.xlsx", sheet = "eleccions")

Com podeu veure, hi ha una columna, la primera, que conté el codi únic de cada municipi de Catalunya. Per tal de poder fer la unió entre el mapa i les dades electorals, convé que arreglem aquest codi. Fixeu-vos que hi ha municipis amb un codi amb un dígit menys. A més, com veureu després a l’arxiu espacial, l’Idescat ens dona els codis de municipis amb un dígit més del que necessitem (l’últim dígit).

Per tant, primer afegim un zero al davant del codi únic (d’aquesta manera tots tindran els mateixos dígits). Fixeu-vos també que convertim el codi a format text. Ens facilitarà la unió espacial. Després eliminem l’últim dígit.

library("dplyr")
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library("stringr")
df_ele$codi <- str_pad(df_ele$codi, 6, pad = "0")
df_ele$codi_unic <- substr(df_ele$codi, 1, 5) 

Ara creem una variable que capturi el percentatge de participació en les eleccions a cada municipi català. Abans hem de convertir les variables a tipus numèric.

df_ele <- df_ele %>% 
  mutate(electors = as.numeric(electors),
         votants = as.numeric(votants)) %>% 
  mutate(part = (votants/electors*100) )   

Fem un histograma per visualitzar ràpidament com es distribueix el percentatge de participació–i, de pas, per comprovar que ho haguem fet bé.

hist(df_ele$part)