Módulo 12 Introducción a R y RStudio

A lo largo del libro incluimos código de R que usamos para estimar, hacer simulaciones y dar ejemplos. Usamos RStudio para crear las diapositivas. Así mismo asumimos que usted utilizará R Markdown para personalizarlas de acuerdo al uso que usted quiera darles. A continuación, incluimos guías para configurar R y RStudio en su computador, así como algunos comandos básicos que se utilizan con frecuencia.

12.1 R y RStudio

R es un entorno de software libre que se utiliza con mayor frecuencia para hacer análisis y cálculos estadísticos. Ya que los participantes de los Learning Days llegan con diferentes conocimientos previos de estadística y distintas preferencias en cuanto a los softwares estadísticos, nosotros usamos R para asegurarnos de que todos estén en la misma página. Abogamos por el uso de R de manera general por su flexibilidad, diversas aplicaciones y soporte integral, que se puede obtener principalmente a través de foros en línea.

RStudio es un entorno de desarrollo integrado de código abierto y gratuito con una interfaz de usuario que hace que R sea mucho más fácil de usar. R Markdown, una herramienta de RStudio, permite presentar fácilmente código, resultados y texto en formato .pdf, .html o .doc.

12.2 Descarga de R y RStudio

12.2.1 Descargando R

R se puede descargar gratuitamente de CRAN en el link correspondiente a su sistema operativo:

12.2.2 Descargando RStudio

RStudio se puede descargar gratuitamente de la página web de RStudio, https://www.rstudio.com/products/rstudio/download/. Haga clic en el botón azul Download que aparece en la parte superior de la columna izquierda de la tabla. Es decir, la columna “RStudio Desktop Open Source License” como se muestra a continuación en la Figura B.1. Una vez que seleccione este botón, la página mostrará una lista de opciones de descarga como se muestra en la Figura B.2.

  • Para Windows, seleccione Windows 10/8/7.
  • Para Mac OS X, seleccione Mac OS X 10.13+.
Seleccione "Download" en la columna "RStudio Desktop Open Source License".

Figura 12.1: Seleccione “Download” en la columna “RStudio Desktop Open Source License”.

Seleccione el link de Windows 10/8/7 para Windows o el link Mac OS X 10.13+ para Mac.

Figura 12.2: Seleccione el link de Windows 10/8/7 para Windows o el link Mac OS X 10.13+ para Mac.

12.3 Interfaz de RStudio

Usted verá tres paneles la primera vez que ejecute RStudio, como se muestra en la Figura B.3 a continuación.

  • Consola (panel izquierdo)
  • Entorno e Historial (panel superior derecho)
  • Misceláneo (panel inferior derecho)
Cuando se abre RStudio, hay tres paneles visibles:  la Consola (panel izquierdo), Entorno e Historial (panel superior derecho) y  Misceláneo (panel inferior derecho).

Figura 12.3: Cuando se abre RStudio, hay tres paneles visibles: la Consola (panel izquierdo), Entorno e Historial (panel superior derecho) y Misceláneo (panel inferior derecho).

12.3.1 Consola

Puede ejecutar todas las operaciones directamente en la consola. Por ejemplo, si ingresa 4 + 4 y presiona la tecla Enter/Return, la consola devolverá [1] 8.

Para asegurarnos que todos estén preparados para usar R en los Learning Days, les pedimos a los participantes que ejecuten una línea de código en particular en la consola para descargar varios paquetes de R. Los paquetes son fragmentos de código reproducible que permiten un análisis más eficiente en R. Para ejecutar estas líneas, copie el siguiente código en la Consola y presione la tecla “Enter”/“Intro”. Tenga en cuenta que se requiere conexión a internet para poder descargar paquetes.

install.packages(c(
  "ggplot2", "dplyr", "AER", "arm", "MASS", "sandwich",
  "lmtest", "estimatr", "coin", "randomizr", "DeclareDesign"
))

Si los paquetes son descargados correctamente, su consola se deberá ver como la figura B.4, excepto que las URL variarán de acuerdo a su ubicación.

Un imagen de la Consola después de ejecutrar las tres lineas de códico indicadas arriba.

Figura 12.4: Un imagen de la Consola después de ejecutrar las tres lineas de códico indicadas arriba.

12.3.2 Editor

Para escribir y guardar código reproducible se utiliza un cuarto panel, el Editor. Para abrir el Editor, haga clic en el icono con una página en blanco con un signo más en la esquina superior izquierda de la interfaz de RStudio y seleccione R Script, tal como se ve en la Figura B.5.

Para crear un nuevo archivo de R y abrir el Editor seleccione `R Script` del menú que se despliega.

Figura 12.5: Para crear un nuevo archivo de R y abrir el Editor seleccione R Script del menú que se despliega.

Una vez que se abre un nuevo archivo de R (R script), debe haber cuatro paneles en la interfaz de RStudio, incluyendo el panel del Editor. Podemos ejecutar aritmética simple ingresando una fórmula en el Editor y presionando Control + Enter (Windows) o Command + Enter (Mac). La fórmula y la “respuesta” aparecerán en la Consola, tal como se muestra en la Figura B.6. Las casillas rojas son agregadas para enfatizar.

Una expresióna aritmética se escribe en el Editor y se evalua en la Consola. Los recuadros rojos son para dar énfasis.

Figura 12.6: Una expresióna aritmética se escribe en el Editor y se evalua en la Consola. Los recuadros rojos son para dar énfasis.

R se puede utilizar para cualquier operación aritmética, incluidas, entre otras, la suma (+), la resta (-), la multiplicación escalar (*), la división (/) y la exponenciación (^ ).

12.3.3 Entorno, historial y otros

Más allá de las funciones básicas también podemos almacenar valores, datos y funciones en el entorno global. Para asignar un valor a una variable, use el operador <-. Todos los valores, funciones y datos almacenados aparecerán en la pestaña Entorno del panel superior derecho. En la Figura B.7, definimos la variable t para tomar el valor \(3 \times \frac {6}{14}\). Como podemos ver t está almacenada en Values.

También cargamos un conjunto de datos. Aquí, “ChickWeight” es un conjunto de datos integrado en R. La mayoría de los conjuntos de datos se cargarán desde la web u otros archivos en su computadora a través de un método alternativo. Podemos ver que ChickWeight contiene 578 observaciones de 4 variables y se almacena en el entorno. Al hacer clic en el nombre ChickWeight, ingresará una pestaña con el conjunto de datos en la ventana del Editor.

El valor 3 * (6/14) es asignado a la variable t (en rojo) y el conjunto de datos ChickWeight se guarda en el Entorno (en azul). Los recudros son para dar énfasis.

Figura 12.7: El valor 3 * (6/14) es asignado a la variable t (en rojo) y el conjunto de datos ChickWeight se guarda en el Entorno (en azul). Los recudros son para dar énfasis.

Los talleres de los Learning Days utilizan muchas herramientas en R para analizar y explorar datos. Por ahora, podemos aprender algunas herramientas básicas para examinar los datos. La función head() nos permite ver las primeras seis filas del conjunto de datos. summary() resume cada una de las columnas del conjunto de datos y dim() proporciona las dimensiones del conjunto de datos, primero el número de filas y luego las columnas.

head(ChickWeight) # Primeras 6 observaciones de los datos
  weight Time Chick Diet
1     42    0     1    1
2     51    2     1    1
3     59    4     1    1
4     64    6     1    1
5     76    8     1    1
6     93   10     1    1
summary(ChickWeight) # Resumen de todas las variables
     weight         Time          Chick     Diet   
 Min.   : 35   Min.   : 0.0   13     : 12   1:220  
 1st Qu.: 63   1st Qu.: 4.0   9      : 12   2:120  
 Median :103   Median :10.0   20     : 12   3:120  
 Mean   :122   Mean   :10.7   10     : 12   4:118  
 3rd Qu.:164   3rd Qu.:16.0   17     : 12          
 Max.   :373   Max.   :21.0   19     : 12          
                              (Other):506          
dim(ChickWeight) # Dimensiones de los datos; primero filas luego columnas
[1] 578   4

A diferencia de cualquier otro software estadístico, R permite a los usuarios almacenar múltiples conjuntos de datos de diferentes dimensiones simultáneamente. Esta característica hace que R sea bastante flexible para el análisis de datos utilizando distintos métodos.

12.3.4 Misceláneo

R proporciona un conjunto de herramientas, que van desde funciones integradas para graficar (plot) hasta paquetes externos para estimaciones, modelos, gráfico de datos, etc. El último panel, Misceláneo, permite la visualización rápida de gráficos en RStudio. La Figura B.8 muestra cómo se ve una gráfica en este panel. En los Learning Days se explicara más en detalle cómo graficar datos. Por ahora no se preocupe por el código para graficar que aparece en el Editor.

Un ejemplo de una gráfica de datos hecha en R utilizando el conjunto de datos `ChickWeight`.

Figura 12.8: Un ejemplo de una gráfica de datos hecha en R utilizando el conjunto de datos ChickWeight.

12.4 Aprendiendo a usar R

12.4.1 Recursos en línea

Hay muchos recursos útiles en línea que lo ayudarán a familiarizarse con R. Nosotros recomendamos dos fuentes:

  • Code School, que se ejecuta completamente a través de su navegador https://www.codeschool.com/courses/try-r.
  • Coursera, a través de un curso de programación R en línea organizado por la Universidad Johns Hopkins:
    1. Vaya a [https://www.coursera.org] (https://www.coursera.org)
    2. Cree una cuenta (¡es gratis!)
    3. Regístrese en R Programming en la Universidad de Johns Hopkins (instructor: Roger Peng) en la pestaña “Courses”.
    4. Lea los materiales y vea los videos de la primera semana. Los videos de la primera semana duran aproximadamente 2.5 horas en total.

12.4.2 Práctica básica

Aquí proporcionamos algunos fragmentos de código para que se familiarice con algunas prácticas básicas en R. Le recomendamos que practique escribiendo los fragmentos de código en su Editor y luego revisando los resultados.

12.4.2.1 Configuración de una sesión R

En general, leemos otros archivos tales como datos o funciones en R y generamos resultados en forma de gráficos o tablas guardados en archivos que no están contenidos en una sesión de R. Para hacer esto, debemos darle a R una “dirección” en la que guardar dichos archivos. Puede ser más eficiente hacer esto configurando un directorio de trabajo, esto es, una ruta de archivo en la que se almacenan los archivos relevantes. Podemos identificar el directorio de trabajo actual usando getwd() y establecer uno nuevo usando setwd(). Tenga en cuenta que la sintaxis de estas rutas de archivo varía según el sistema operativo.

getwd()
setwd("~TaraLyn/EGAP Learning Days Admin/Workshop 2018_2 (Uruguay)/")

Es posible que usted necesite instalar paquetes adicionales a los enumerados anteriormente para ejecutar ciertas funciones. Para instalar paquetes se utiliza la función install.packages(" "), escribiendo el nombre del paquete entre comillas. Solo hace falta instalar los paquetes una vez.

install.packages("randomizr")

Una vez que se instala un paquete se puede cargar y acceder a él usando library() donde el nombre del paquete se inserta entre paréntesis (sin comillas "").

library(randomizr)

Para borrar la memoria de R de los datos, funciones o valores almacenados que aparecen en la pestaña del entorno (Environment), use rm(list = ls()). Puede ser útil establecer una semilla de un número aleatorio para garantizar que sea posible replicar nuestro código en una sesión de R diferente. Esto es especialmente importante cuando trabajamos con métodos basados en simulación.

rm(list = ls())
set.seed(2018) # Opcional: definir semilla para resultados replicables

12.4.2.2 Comandos básicos de R

A continuación, exploraremos algunos de los comandos básicos de R. Por ejemplo, para asignar un escalar (un elemento simple) a una variable, usamos el comando <- como mencionamos anteriormente:

# "<-"  es el comando para asignar; Se utiliza para definir variables.
# Por ejemplo:
(a <- 5)
[1] 5

También es posible que queramos asignar un vector de elementos a una variable. Aquí usamos el mismo comando <-, pero nos enfocamos en cómo crear el vector.

(b <- 1:10) # ":"  se utiliza para crear una cadena de números enteros
 [1]  1  2  3  4  5  6  7  8  9 10
(v <- c(1, 3, 2, 4, pi)) #  c() se utiliza para crear un vector
[1] 1.000 3.000 2.000 4.000 3.142
#   cuyos elementos pueden ser de cualquier tipo

Podemos referirnos a los elementos de un vector indicando su posición en el vector entre corchetes [].

# Consultar los elementos de un vector:
b[1] # Devuelve la 1ra posición del vector
[1] 1
b[5:4] # Devuelve las posiciones 5 y 4; en ese orden
[1] 5 4
b[-1] # Devuelve todas las posiciones menos la primera
[1]  2  3  4  5  6  7  8  9 10
# Devuelve todas las posiciones para las cuales se indica "TRUE"
b[c(TRUE, FALSE, TRUE, FALSE, FALSE, TRUE, TRUE, FALSE, FALSE, FALSE)]
[1] 1 3 6 7
# Para asignar valores a posiciones específicas en un vector
b[5] <- 0

Hay un conjunto de funciones integradas que se pueden aplicar a vectores como b.

sum(b) # Suma de todos los elementos
[1] 50
mean(b) # Promedio de todos los elementos
[1] 5
max(b) # Máximo de todos los elementos
[1] 10
min(b) # Mínimo de todos los elementos
[1] 0
sd(b) # Desviación estándar de todos los elementos
[1] 3.496
var(b) # Varianza de todos los elementos
[1] 12.22

También podemos aplicar transformaciones aritméticas a los elementos de un vector:

b^2 # Eleva c/u de los elementos al cuadrado
 [1]   1   4   9  16   0  36  49  64  81 100
b^.5 # Calcula la raíz cuadrada de los elementos
 [1] 1.000 1.414 1.732 2.000 0.000 2.449 2.646 2.828 3.000 3.162
log(b) # Calcula el logaritmo de los elementos
 [1] 0.0000 0.6931 1.0986 1.3863   -Inf 1.7918 1.9459 2.0794 2.1972 2.3026
exp(b)[1:6] # e elevado a la b. sólo mostramos las posiciones 1 a 6,
[1]   2.718   7.389  20.086  54.598   1.000 403.429
# por razones de diagramación pero la operación se  aplica a todo el vector b

Finalmente, podemos evaluar condiciones lógicas (es decir, ``¿es verdadera la condición X?’’) En todos los elementos de un vector:

b == 2 # Es igual a ?
 [1] FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
b < 5 # Es menor que
 [1]  TRUE  TRUE  TRUE  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE
b >= 5 # Es mayor o igual que
 [1] FALSE FALSE FALSE FALSE FALSE  TRUE  TRUE  TRUE  TRUE  TRUE
b <= 5 | b / 4 == 2 # | signfica "o"
 [1]  TRUE  TRUE  TRUE  TRUE  TRUE FALSE FALSE  TRUE FALSE FALSE
b > 2 & b < 9 # & significa "y"
 [1] FALSE FALSE  TRUE  TRUE FALSE  TRUE  TRUE  TRUE FALSE FALSE
is.na(b) # hay valores faltantes en b?
 [1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
which(b < 5) # posiciones paras las cuales una condición se cumple
[1] 1 2 3 4 5

La lógica básica de estos comandos se aplica a estructuras de datos mucho más complejas que escalares y vectores. Comprender bien estas funciones básicas le ayudará a entender temas más avanzados durante los Learning Days.