El objetivo de esta práctica laboratorial es ofrecerte una introducción a R y a RStudio. Ambos serán utilizados durante el curso tanto para aprender conceptos estadísticos discutidos en el libro de texto como para analizar datos reales y llegar a conclusiones informadas. Para aclarar cuál es cuál, R es el lenguage de programación y RStudio es una interfaz conveniente para el mismo.

A medida que las prácticas laboratoriales progresen te alentamos a que explores más allá de lo que las mismas indican. El deseo de experimentar te hará un programador mucho mejor. Sin embargo, antes de que lleguemos a esa etapa debes adquirir una fluidez básica en R. Hoy empezaremos con los bloques fundamentales de construcción en R y RStudio: la interfaz, la lectura de datos, y algunos comandos básicos.

rinterface

El panel en la esquina superior derecha contiene tu espacio de trabajo ("workspace") así como un historial de los comandos que has ingresado previamente. Cualquiera de las figuras que generes aparecerán en el panel de la esquina inferior derecha.

El panel en la izquierda es donde ocurre la acción. Se llama la consola ("console"). Cada vez que inicies RStudio tendrá el mismo texto en la parte superior de la consola indicándote la versión de R que estás ejecutando. Debajo de esta información está la línea de comandos ("prompt"). Como sugiere su nombre, esta línea de comandos es donde se introducen los comandos. Inicialmente, interaccionar con R es ante todo tipear comandos e interpretar los resultados. Estos comandos y su sintaxis han evolucionado a través de las décadas (literalmente) y ahora proveen lo que muchos usuarios sienten es una manera apropiadamente natural de acceder a los datos y organizar, describir e invocar cálculos estadísticos.

Para empezar, ingresa el siguiente comando en la línea de comandos (i.e., justo después del símbolo > en la consola). Puedes tipearlo manualmente o pegarlo desde este documento.

source("http://www.openintro.org/stat/data/arbuthnot.R")

Este comando le dice a R que acceda al sitio web de OpenIntro y obtenga algunos datos: el conteo de bautismos de niños y niñas de Arbuthot. Deberías ver que el área de trabajo en la esquina superior derecha de RStudio ahora lista un conjunto de datos ("dataset") que contienen 82 observaciones y 3 variables. A medida que interacciones con R crearás una serie de objetos. Algunas veces los cargarás como lo hemos hecho aquí, y otras veces los crearás tú mismo como el producto colateral de un cálculo o algún análisis que hayas realizado. Nota que, debido a que estás accediendo a datos desde la web, este comando (y toda la práctica) funcionará en una computadora del Laboratorio, la Biblioteca, o tu dormitorio: cualquier lugar desde donde tengas acceso a la Internet.

Los Datos: Registros de Bautismo del Dr. Arbuthnot

El conjunto de datos Arbuthnot hace referencia al Dr. John Arbuthnot, un médico, escritor y matemático del siglo XVIII. Él estuvo interesado en la razón entre las niñas y niños recién nacidos, por lo que recolectó los registros de bautismo de niños y niñas nacidas en Londres durante los años 1629 a 1710. Podemos visualizar los datos tipeando su nombre en la consola.

arbuthnot

Lo que deberías ver son 4 columnas de números, cada fila representando un año diferente: la primera entrada en cada fila es simplemente el número de fila (un índice que podemos usar para acceder a los datos por años individuales si así deseamos), la segunda es el año, y la tercera y la cuarta son los números de niños y niñas bautizados ese año, respectivamente. Usa la barra de desplazamiento en el lado derecho de la ventana de la consola para examinar el conjunto de datos por completo.

Nota que los números de fila en la primera columna no son parte de los datos de Arbuthot. R los añade como parte de su impresión para ayudarte a hacer comparaciones visuales. Puedes considerarlos como el índice que ves al lado izquierdo de una hoja de cálculos ("spreadsheet"). De hecho, la comparación con una hoja de cálculos generalmente será útil. R ha almacenado los datos de Arbuthnot en una especie de hoja de cálculos o tabla llamada marco de datos ("data frame").

Puedes ver las dimensiones de este marco de datos tipeando

dim(arbuthnot)
## [1] 82  3

Este comando debería dar el resultado [1] 82 3, indicando que hay 82 filas y 3 columnas (llegaremos a lo que significa [1] en un momento), así mismo como se indica junto al objeto en tu espacio de trabajo. Puedes ver los nombres de estas columnas (o variables) tipeando

names(arbuthnot)
## [1] "year"  "boys"  "girls"

Deberías poder ver que el marco de datos contiene las columnas year (año), boys (niños) y girls (niñas). En este punto, tendrías que notar que muchos de los comandos en R se parecen mucho a las funciones que uno ve en las clases de matemática; esto es, invocar comandos en R significa proveer a una función con algunos números como argumentos. Los comandos dim y names, por ejemplo, toman cada uno un único argumento, el nombre del marco de datos.

Una ventaja de RStudio es que viene con un visualizador de datos incluido. Haz click en el nombre arbuthnot en el panel de Entorno ("Environment") de la esquina superior derecha que lista los objetos en tu espacio de trabajo. Esto hace aparecer una visualización alternativa del conjunto de datos en el Visualizador de Datos ("Data Viewer") en la esquina superior izquierda. Puedes cerrar el visualizador de datos haciendo click en la x de la mano superior izquierda.

Explorando un Poco

Empecemos a examinar los datos un poco más de cerca. Podemos acceder a los datos de una única columna por separado de un marco de datos usando un comando como

arbuthnot$boys

Este comando mostrará solamente el número de niños bautizados cada año.

  1. ¿Qué comando usuarías para extraer sólo el conteo de las niñas bautizadas? Intentalo.

Nota que la forma en la que R ha impreso estos datos es diferente. Cuando miramos al marco de datos por completo vimos 82 filas, cada una en una línea de la pantalla. Estos datos ya no están estructurados en una tabla con las otras variables, por lo que son mostrados uno inmediatamente después del otro. Los objetos que son impresos de esta forma son llamados vectores ("vectors"); estos vectores representan un conjunto de números. R ha añadido números entre [corchetes] a lo largo del lado izquierdo de la impresión para indicar las localizaciones dentro de cada vector. Por ejemplo, 5218 sigue a [1], indicando que 5218 es la primera entrada en este vector. Y si [43] empieza una línea, entonces eso significa que el primer número en esa línea representa la entrada 43ra en ese vector.

R tiene algunas funciones poderosas para hacer gráficos. Podemos crear un gráfico simple del número de niñas bautizadas por año con el comando

plot(x = arbuthnot$year, y = arbuthnot$girls)

Por defecto, R crea un gráfico de dispersión por cada par (x, y) indicado por un círculo hueco. El gráfico en sí mismo debería aparecer bajo la pestaña de Gráficos ("Plots") en el panel inferior derecho de RStudio. Nota que el comando de arriba se parece nuevamente a una función, esta vez con 2 argumentos separados por una coma. El primer argumento en la función del gráfico especifica la variable para el eje x y el segundo para el eje y. Si quisiéramos conectar los puntos de datos con líneas podríamos agregar un tercer argumento, la letra l por línea ("line").

plot(x = arbuthnot$year, y = arbuthnot$girls, type = "l")

Podrías preguntarme cómo se supone que sepas que es posible agregar ese tercer argumento. Por suerte, R documenta todas sus funciones detalladamente. Para leer acerca de lo que una función hace y aprender los argumentos que están disponibles para su uso, simplemente tipea un signo de interrogación seguido por el nombre de la función en la que estás interesado. Intenta lo siguiente.

?plot

Nota que el archivo de ayuda reemplaza el gráfico en el panel inferior derecho. Puedes cambiar entre los gráficos y los archivos de ayuda usando las pestañas en la parte superior de ese panel.

  1. ¿Existe alguna tendencia aparente en el número de niñas bautizadas a través de los años? ¿Cómo describirías esta tendencia?

Ahora, supongamos que queremos graficar el número total de bautismos. Para calcular esto podriamos usar el hecho de que R es realmente como una gran calculadora. Podemos tipear expresiones matemáticas como esta

5218 + 4683

para ver el número total de bautismos en 1629. Podríamos repetir esto por cada año, pero hay una manera más rápida. Si añadimos el vector para bautismos de niños y niñas R calculará todas las sumas simultáneamente.

arbuthnot$boys + arbuthnot$girls

Lo que verás serán 82 números (encimados en la pantalla, ya que no estamos visualizando un marco de datos aquí), cada uno representando la suma que estamos buscando. Mira a algunos de los números y verifica que son correctos. Por lo tanto, podemos hacer un gráfico con el número total de bautismos por año con el siguiente comando

plot(arbuthnot$year, arbuthnot$boys + arbuthnot$girls, type = "l")

Esta vez, nota que hemos dejado de lado los nombres de los primeros 2 argumentos. Podemos hacer esto debido a que el archivo de ayuda muestra que para el gráfico ("plot") por defecto el primer argumento corresponde a la variable x y el segundo corresponde a la variable y.

De manera similar a cómo calculamos la proporción de niños, podemos calcular la razón del número de niños sobre el número de niñas bautizadas en 1629 usando

5218 / 4683

o podemos actuar sobre los vectores por completo con la expresión

arbuthnot$boys / arbuthnot$girls

La proporción de recién nacidos niños es

5218 / (5218 + 4683)

o esto puede ser calculado para todos los años simultáneamente con

arbuthnot$boys / (arbuthnot$boys + arbuthnot$girls)

Nota que con R como tu calculadora necesitas tomar conciencia del orden de las operaciones. Aquí, queremos dividir el número de niños por el total de número de recién nacidos, así que debemos usar paréntesis. Sin paréntesis, R calculará primero la división, luego la adición, dándote algo que no es una proporción.

  1. Ahora, haz un gráfico de la proporción de niños a través del tiempo. ¿Qué ves? Consejo: si usas las teclas de flechas abajo y flecha arriba puedes revisar tus comandos anteriores, el llamado historial de comandos. También puedes acceder a este historial haciendo click en la pestaña de historial en el panel superior izquierdo. Esto te ahorrá mucho tipeado en el futuro.

Finalmente, además de operadores matemáticos simples como substracción y división, puedes pedirle a R que haga comparaciones tales como mayor a, >, menor a, <, e igual a, ==. Por ejemplo, podemos preguntar si el número de niños es mayor al de niñas en cada año con la expresión

arbuthnot$boys > arbuthnot$girls

Este comando imprime 82 valores de TRUE (VERDADERO) si en ese año hubieron más niños que niñas, o de FALSE (FALSO) si ese año no se observó eso (la respuesta puede que te sorprenda). Estos resultados muestran un tipo distinto de datos a los que hemos considerado hasta ahora. En el marco de datos arbuthnot nuestros valores son numéricos (el año, el número de niños y niñas). Aquí, hemos pedido a R que cree datos logicos ("logical data"), datos en los cuales los valores son TRUEo FALSE. En general, el análisis de datos podrá involucrar muchos tipos distintos de tipos de datos, y una razón para usar R es que es capaz de representar y hacer cálculos con muchos de estos datos.

Esto parece ser suficiente para tu primera práctica laboratorial, así que nos detendremos aquí. Para salir de RStudio puedes hacer click en la x en la esquina superior derecha de la ventana principal. Se te preguntará si quieras guardar tu espacio de trabajo. Si haces click en save ("guardar"), RStudio guardará el historial de tus comandos y todos los objetos en tu espacio de trabajo para que la próxima vez que lances RStudio, puedas ver arbuthnot y puedas acceder a todos los comandos que tipeaste en tu sesión previa. Por ahora, guarda tu espacio de trabajo y luego vuelve a iniciar RStudio.


Por tu cuenta

En las escasas páginas previas has recreado algunas de las pantallas y análisis preliminar de los datos de bautismo de Arbuthnot. Tu tarea implica repetir estos pasos, pero utilizando datos actuales de los registros de nacimientos en los Estados Unidos. Carga los datos del día actual con el siguiente comando

source("http://www.openintro.org/stat/data/present.R")

Los datos están almacenados en un marco de datos llamado present.

Estos datos provienen de un reporte de los Centros para el Control de Enfermedades de los Estados Unidos http://www.cdc.gov/nchs/data/nvsr/nvsr53/nvsr53_20.pdf. Revísalos si quiseras leer más acerca sobre un análisis de proporciones de nacimientos por sexo en los Estados Unidos.

Esta fue una corta introducción a R y RStudio, pero te proveeremos con más funciones y un sentido más completo del lenguaje a medida que el curso progrese. Sientete libre de navegar por los sitios web de R y RStudio si estás interesado en aprender más o busca más prácticas laboratoriales en http://openintro.org.

Este es un producto de OpenIntro que se publica bajo una licencia Creative Commons Attribution-ShareAlike 3.0 Unported. Esta práctica laboratorial fue adaptada para OpenIntro por Andrew Bray and Mine Çetinkaya-Rundel a partir de una práctica laboratorial escrita por Mark Hansen de la UCLA Statistics. El archivo original (en inglés) se encuentra disponbile http://htmlpreview.github.io/?https://github.com/andrewpbray/oiLabs/blob/master/intro_to_r/intro_to_r.html. Esta práctica laboratorial fue traducida por Alcides Chaux, M.D.