TodЛs somos políticЛs. TodЛs hacemos política.

Para cerrar esta serie de posts en los que estamos comenzando a programar en R con datos del CIS vamos a hablar de las funciones y de las dos aportaciones más comunes de la comunidad: los paquetes y el código abierto. Hasta ahora hemos utilizado funciones importadas, como pueden ser geom_line de ggplot2 o filter de dplyr. Estos comandos o funciones contienen una programación interna que realiza determinados procedimientos cuando son utilizados. Esto nos permite tener un código más limpio y sencillo de entender y replicar.

Las funciones permiten condensar un procedimiento más o menos complejo en una sola función. Si queremos crear una que cruce dos variables llamadas x e y, usaremos el comando function.

tablacruzada <- function(x,y){table(x, y)}

La función llamada tablacruzada cogerá los valores de x e y y devolverá una tabla cruzada de esas dos variables. Antes de aplicarla hay que dar un valor a x y otro a y. En este caso x será interés por la política e y, interés por la campaña electoral.

x <- dataset$P1
y <- dataset$P2

Por último aplicamos la función, que nos devuelve la tabla cruzada de P1 y P2. La programación de este tipo de funciones es especialmente útil cuando necesitamos repetir varias veces un mismo procedimiento y queremos tener un código limpio y legible.

tablacruzada(x,y)
##    y
## x      1    2    3    4    8    9
##   1  342  184   52   11    1    0
##   2  323 1217  305   46    1    4
##   3   60  445 1264  275    3    3
##   4   15   80  391  898    4    1
##   9    2    4    6    1    0    5

Los paquetes son conjuntos de funciones que facilitan la programación en R. Son una especie de complemento que amplía las funcionalidades del R básico. Al tener una comunidad tan amplia, este lenguaje de programación cuenta con paquetes muy diversos que podemos encontrar en su repositorio oficial llamado CRAN o en los Github de los propios desarrolladores (aunque hay que tener precaución y saber qué estamos instalando para prevenir problemas). Dos paquetes no oficiales interesantes para científicos sociales son CisUtils, de Gonzalo Rivero para tratar datos del CIS, y Elecciones, de Héctor Meleiro para descargar resultados electorales.

La instalación de paquetes, como ya hemos ido viendo durante la serie, se hace mediante el comando install.packages si están en el CRAN y devtools::install_github si están alojados en Github. Para instalar Elecciones haremos lo siguiente:

devtools::install_github("hmeleiro/elecciones")

La activación de paquetes ya instalados se hace con library.

library(elecciones)

Una vez instalada y activada la librería, no hay más que ir a su página web y buscar la documentación, en la que aparecerá una descripción de las funcionalidades que añade y ejemplos de su uso. Con Elecciones, por ejemplo, podemos descargar los resultados de las elecciones generales de 1979 a nivel de municipio como se comenta en su documentación.

generales.1979 <- municipios(tipoeleccion = "generales", 
                             yr = 1979, mes = "03")

Otros usuarios de R comparten directamente el código de su análisis para que pueda ser leído y replicado por las personas interesadas. Habitualmente este código se acompaña de comentarios que documentan el proceso y facilitan su interpretación. Ejemplos de esto son el código compartido por Ariane Aumaitre donde enseña a animar gráficos de ggplot2 o el de Daiana Emili donde analiza el guión de La Casa de Papel.

Si has seguido la serie completa es probable que tengas un conocimiento de R mayor que el que tenías al principio. Pero para afianzar conocimientos y encontrar nuevas funcionalidades no queda otra que ponerte manos a la obra con un dataset de tu interés. Lleva tiempo, pero R es gratuito, no requiere licencia y tiene una comunidad muy colaborativa. Te aseguro que darás con nuevas utilidades imposibles de hacer con tu paquete estadístico habitual y que ampliarás las posibilidades que tienes a tu disposición. ¡Ah! Y no olvides buscar si hay una comunidad de R en tu zona. En Madrid se suelen reunir habitualmente R-Ladies y el Grupo de Usuarios de R de Madrid. Para compartir información también tenemos un grupo de Telegram para gente de ciencias sociales, aunque cualquiera es bienvenido.