Introducción (rápida) a R

José Rodríguez de la Fuente - Albano Vergara Parra

Doctorado en Ciencias Sociales (UBA)

Bibliografía recomendada

1. ¿Por qué usar R?

Ventajas

  • Código abierto: amplia cantidad de paquetes
  • Es gratuito
  • Puede abrir varias bases de datos al mismo tiempo: usa la memoria virtual
  • Gran comunidad de usuarios (foros)
  • Uso extendido en la ciencia (sociales) y ámbito profesional
  • Producción de gráficos de alta calidad
  • Capacidad de elaborar tableros, aplicaciones, documentos, páginas web, presentaciones, etc.

Desventajas (1)

  • Las órdenes deben darse por sintaxis (no hay mucho point and click)
  • Hacer cosas sencillas y rápidas puede llevar más tiempo que en otros programas
  • La curva de aprendizaje es lenta

Desventajas (2)

Desventajas (3)

Comparaciones con otros programas

Software Interfaz Curva de aprendizaje Manipulación de data Análisis estadístico Gráficos Especialidades
SPSS Menus & Sintaxis Gradual Moderada Alcance moderado
Baja versatilidad
Buenos Tablas personalizadas, ANOVA & Análisis multivariado
Stata Menus & Sintaxis Moderado Fuerte Amplio alcance
Media versatilidad
Buenos Análisis de panel, Análisis de encuesta & Imputación múltiple
R Sintaxis Empinada Muy fuerte Muy amplio alcance
Alta versatilidad
Excelentes Paquetes de gráficos, Web Scraping, Machine Learning & Predictive Modeling

Fuente: https://sites.google.com/a/nyu.edu/statistical-software-guide/summary

Ejemplos de usos de R en el ámbito público y académico

2. Introducción (breve) a R

Descarga e instalación

  1. Debemos instalar R desde CRAN (the comprehensive R archive network)
    • Es el motor de todo
  2. Debemos instalar RStudio
    • Es un ambiente de desarrollo integrado (IDE) para programar en R
  3. Recomendación de actualizar ambos programas periódicamente

Partes de RStudio

Archivos del proyecto

Ambiente de trabajo

Consola

Script o sintaxis

Archivos en RStudio

  • Scripts (.R): Archivos de texto con código R
  • Documentos R Markdown (.Rmd): Archivos de texto con código R y texto en formato Markdown
  • Proyectos (.Rproj): Archivos que contienen un conjunto de scripts, datos, gráficos, etc.
  • Archivos
    • Archivos de datos no nativos de R (.csv, .xlsx, etc.)
    • Archivos RData (.RData): Archivos que contienen objetos de R
    • Archivos RDS (.RDS): Archivos que contienen un único objeto de R

¿Cómo hacer funcionar R?

  • Mediante R base: comandos y funciones básicas que ya vienen incorporadas en el programa

  • Mediante paquetes:

    • Conjunto de comandos y funciones elaborados por usuarios
    • Facilitan el trabajo

Tidyverse: el paquete de paquetes

  • Los paquetes del Tidyverse comparten una filosofía acerca de los datos y la programación en R, y están diseñados para trabajar juntos con naturalidad.

  • Prácticamente solo utilizaremos estos paquetes en el seminario.

¿Cómo instalar y hacer funcionar los paquetes?

  • Los paquetes se instalan via descarga de internet
  • La operación se hace directamente desde la consola o script de RStudio
install.packages("tidyverse")
  • Siempre que necesitemos usar un paquete debemos activarlo
library(tidyverse)

Otros paquetes interesantes

  • Ipumsr: para trabajar con bases de datos de IPUMS (muestras de censos de todo el mundo)

  • eph: para trabajar con la Encuesta Permanente de Hogares (EPH) de INDEC

Flujo de trabajo: Dinámica

Fuente: Wickham and Grolemund, 2016

Fuente: https://teachdatascience.com/tidyverse/

Flujo de trabajo: Proyectos

  • Siempre es recomendable trabajar dentro de un proyecto
  • Nos aseguraremos que todos los archivos y carpetas necesarios estén siempre en un lugar único
  • Trabajaremos con rutas relativas.
  • Hacer la prueba y armar un proyecto para el seminario

Ejemplo de carpeta de proyecto

Flujo de trabajo: Objetos (1)

Todo lo que creemos en R es un objeto. Y en esto R es totalmente distinto a lo que conocíamos.


objeto <- "Yo soy un objeto"

Flujo de trabajo: Objetos (2)

Podemos crear objetos a partir de:

Números

numeros <- 5625

Palabras

Palabras <- "¡Hola amigos!"

Vectores: secuencias de números, palabras, etc.

vector <- c(4,5,6,7,8)

Listas, data frames, gráficos, funciones, mapas y muchas cosas más.

Flujo de trabajo: Elementos del script (caracteres especiales)

  • De asignación (<- o =): le asignan un valor a un objeto.
  • De anotación (#): permite escribir anotación en el script que no son leídas como código
  • Pipa (%>%): permite concatenar una secuencia de acciones sobre un objeto
    • Pertenece al paquete magrittr que está en tidyverse

Flujo de trabajo: Elementos del script (operadores)

Operadores aritméticos

  • + Suma
  • - Resta
  • * Multiplicación
  • / División

Operadores relacionales

  • > Mayor
  • >= Mayor o igual
  • < Menor
  • <= Menor o igual
  • == Igual
  • != Distinto

Operadores lógicos

  • & y
  • | ó

Flujo de trabajo: Objetos (3)

Existe una clase especial de vector denominado factor

  • Suelen ser utilizados como variables categóricas (nominales u ordinales)
  • Tienen un conjunto fijo y conocido de valores que puede asumir
  • Se suelen construir a partir de vectores de cadena


clases_sociales <- c("alta", "media", "baja", "baja", "media", "media", "baja")
clases_factor <- factor(clases_sociales, levels = c("baja", "media", "alta"))
table(clases_factor)
clases_factor
 baja media  alta 
    3     3     1 

Principales funciones de dplyr

  • Filter: filtrado de filas o casos
  • Select: selección de columnas o variables
  • Arrange: ordena los casos de una variable(s)
  • Count: cuenta casos
  • Mutate: crea nuevas columnas o variables
  • Case_when: crea nuevas columnas o variables con condiciones
  • Group_by / summarize: agregan casos por variable