Capítulo 1 Preliminares: 1.1 Objetivo y Mecánica Del Curso
Capítulo 1 Preliminares: 1.1 Objetivo y Mecánica Del Curso
Capítulo 1 Preliminares: 1.1 Objetivo y Mecánica Del Curso
Creemos que al final seréis capaces de utilizar R para cargar datos, arreglarlos, hacer gráficos, tablas e
informes reproducibles en Rmarkdown.
Intentaremos que el curso sea fundamentalmente práctico, PERO se necesita un mínimo de conocimiento
de cómo funcionan algunas cosas, además, hay que conocer un poco la jerga que se utiliza en la
comunidad R.
En lugar de presentar todos los pormenores de R de manera lineal, se irán presentando distintos aspectos
de R conforme se vayan necesitando; es decir, no vamos a presentar R como un lenguaje de programación
sino como una herramienta para hacer análisis estadísticos.
En la carpeta del curso tenéis todos los materiales: tutoriales, algunos datos, etc….
1.2 Preliminares
Curso de introducción a R.
En el curso se trabajará con R a través de RStudio y utilizando Rprojects.
Se presentarán las principales funciones de R-base, pero (en general) se priorizará el uso de un conjunto
de paquetes englobados bajo el nombre genérico de tidyverse.
En la introducción han aparecido unas cuantas palabras nuevas. Así todas ellas empiezan con la letra R:
R vs. RStudio
Antes de empezar el curso tenemos que tener una idea de qué significan. Vamos a ello:
1.4 R
1.4.0.1 ¿Qué es R?
R es un lenguaje de programación y un entorno para el análisis estadístico y gráfico.
R es parte del sistema GNU y se distribuye bajo la licencia GNU GPL; es decir, es software libre y
gratuito.
R fue inicialmente creado por R. Ihaka y R.Gentleman de la Universidad de Auckland en 1993, pero
actualmente, el entorno R es el resultado de la colaboración de toda una comunidad de usuarios.
A partir de 1997 el desarrollo del código fuente (o base-R) de R es llevado por un grupo de programadores
conocido como “The R-core team”.
La página web oficial de R se llama: The R Project for Statistical Computing . Allí podrás encontrar toda la
información oficial acerca de R.
R forma parte de un proyecto colaborativo y abierto. Sus usuarios pueden publicar paquetes que extienden
su configuración básica. Existe un repositorio oficial de paquetes: Comprehensive R Archive Network
o CRAN
R (junto con sus paquetes) puede implementar una gran variedad de técnicas estadísticas y gráficas.
Precisamente estos 2 aspectos (abundancia de paquetes y comunidad de usuarios) son claves en el éxito
de R
Piensa que R se usa hasta para salvar a los bañistas en las playas de Chicago. No sabía que Chicago
tuviera playas!!! Ahora en serio, R es cada vez más usado, no sólo en la universidad y la docencia, sino
también en el mundo de la empresa, puedes verlo aquí o aquí. Una de las conferencias más importantes
sobre el uso comercial de R es The Enterprise Applications of the R Language Conference (EARL) .
Entre las empresas que usan R están: Google, Facebook, Twitter, Microsoft, IBM, Uber, Ford, Airbnb,
American Express, Barclays Bank, Bank of America… Aquí puedes encontrar un listado más completo.
1.4.0.3 Instalación de R
Sólo tienes que ir a CRAN y descargar la distribución de R adecuada para tu sistema operativo
1.5 RStudio
1.5.0.1 ¿Qué es RStudio?
La interfaz de usuario (GUI, Graphical User Interface) de R no es muy amigable ni versátil, así que
interactuaremos con R a través de RStudio.
RStudio es un programa que nos permitirá interactuar con R de forma más amigable, además de facilitar
muchas de las tareas de programación y análisis de datos en R; es decir, RStudio es una GUI (Graphical
User Interface)
En términos más técnicos, RStudio es más que una GUI, es un entorno de desarrollo integrado para R, en
inglés ‘integrated development environment’ o IDE.
El actual científico jefe de RStudio es Hadley Wickham. Wickham es uno de los más prolíficos
desarrollador de paquetes para R y creador de un nuevo estilo de programar y analizar datos en R
conocido como ‘tidyverse’. Muchos de los packages que utilizaremos en el curso han sido desarrollados
por él.
Al abrir RStudio verás que tiene 4 paneles: la consola es lo más parecido a R y allí se pueden ejecutar
instrucciones de R directamente. Para acostumbrase a R y RStudio lo mejor es la práctica,
pero aquí teneis un fantástico libro.
Todas las funciones, datos y utilidades de R disponibles para ser utilizadas están almacenados en
paquetes (packages en inglés).
En enero de de 2017 se superaron los 10.000 pkgs en CRAN. Puedes ver un listado agrupado por
temas aquí. Aunque quizás sea más útil para bucear entre los +10.000 packages este buscador de R-
documentation
Puedes ver una lista con los packages más populares aquí
Para tener una idea de lo dinámica que es la comunidad R os recomendamos que durante las 2 semanas
de duración del curso sigáis a R-bloggers en Twitter(@Rbloggers) o que visitéis Rweekly.
Cada vez más se requiere que los estudios científicos sean reproducibles. Creemos que se convertirá en
un futuro, posiblemente lejano, en el estándar
Hacer una investigación reproducible es COSTOSO; de hecho, hay cursos completos sobre el tema, por
ejemplo éste, y muchos proyectos que tratan de promoverla; por ejemplo éste que pretende favorecer el
uso de datos abiertos a través de R.
Afortunadamente, cada vez hay más herramientas que facilitan hacer la IR: Make, Git, Docker, Pandoc,
Knitr, markdown ….
Hacer una investigación (completamente) reproducible no siempre es posible; OK, PERO al menos
acercarse … un poco.
Estos documentos .Rmd son reproducibles. En breve veremos que significa esto y sus utilidades tanto para
la investigación como para la DOCENCIA
Un video de 1’44’’ que muestra una de las principales ventajas de la IR
1.7.1 Rprojects
Gestionar tus análisis utilizando Rprojects tiene ventajas: puedes gestionar varios proyectos a la vez y
facilita el compartir tus análisis; es decir, favorece la RR.
Podemos pensar que un Rproject es una carpeta, pero es más que eso: cada Rproject tiene su propio
directorio de trabajo, espacio de trabajo (environment), historial de instrucciones; además, permite crear
una estructura de carpetas donde guardar los documentos asociados al proyecto en carpetas separadas
(p.ej: una carpeta para datos, otra para imágenes, …).
Se restaura la sesión tal y como estaba la ultima vez que se cerró el proyecto (pestañas activas, objetos
etc…)
Siempre que un proyecto requiera una estructura de subcarpetas, merece la pena gestionarlo a través de
un Rproject.
Trabajar con Rprojects permite solventar este problema, ya que el directorio de trabajo del Rproject
coincide con la carpeta donde está alojado el Rproject y esto permite (ya lo veremos en el próximo
tutorial) trabajar con rutas (o paths) relativas en lugar de absolutas. (!!)
En palabras de Jenny Bryan una de mis heRoínas y destacada miembro de la comunidad R, si empiezas
tus scripts con setwd(), PLEASE STOP DOING THAT !! Ademas Jenny nos lo explica:
This makes your script very fragile, hard-wired to exactly one time and place. As soon as you rename or
move directories, it breaks. Or maybe you get a new computer? Or maybe someone else needs to run your
code?
Para Jenny la solución es usar el pkg here, y tiene razón, pero nosotros (de momento) sólo usaremos
Rprojects (suficiente!!).
1.7.2 RMarkdown
Lo veremos, pero en esos ficheros .Rmd se mezclan trozos de texto escritos en Markdown (narratives) y
trozos con código R (chunks) para hacer análisis estadísticos.
Estos ficheros se procesan con un paquete de R llamado knitr desarrollado por Yihui Xie … y salen unos
informes o transparencias fantásticas … en una gran variedad de formatos.
Con RStudio es muy fácil: solo hay que usar los menús desplegables de RStudio para crear un documento
Rmarkdown, escribir lo que quieres contar y darle al botón Knitr y knitr tejerá el documento y lo
transformará a …. pdf, word, html …
Por ejemplo, aquí tienes dos post con propuestas completas para aprender R (con links a los materiales):
o Listado sencillo
1.9 Bibliografía
R en Nada es Gratis. Post en castellano sobre las bondades de R como entorno para el análisis de datos
Why R is the best data science language to learn today . Un post sobre la importancia de R en el campo de
análisis de datos o Data Science.
Data Science in Minutes . Una buena primera aproximación a R. Un post que se lee en 15 minutos y
presenta más o menos los tópicos que veremos en el curso.
Why you should master R . Otro post, esta vez dando consejos sobre como afrontar el aprendizaje de R.
Adopting R for experienced developers . A pesar del título, es un buen post sobre orígenes de R, consejos
de como afrontar su aprendizaje y … más cosas. Tiene un gráfico/flowdiagram que te ayudará a decidir si
te merece la pena aprender R.
Why has R, despite quirks, been so successful? Post muy corto pero que muestra (desde un punto de vista
técnico de programación) las ventajas de R
CRAN now has 10,000 R packages. Here’s how to find the ones you need . Post que te ayuda a encontrar el
package apropiado para tus necesidades.
Investigación reproducible con R . Unas buenas transparencias en castellano sobre RR (o IR) y Rmarkdown.
1.10 Cuestiones de repaso
5. Haga una frase que tenga sentido con las palabras knitr, archivo, markdown, Rmd, Yihui Xie, package.
Los packages sirven para algo; por ejemplo el package tabulizer sirve para hacer unas tablas muy chulas.
El repositorio oficial de packages es CRAN. Los packages incluyen funciones para hacer algo (por ejemplo
tablas), a lo mejor datos y documentación para enseñar como se utilizan las funciones
Además, facilita la reproducción de nuestros análisis, ya sea con otras personas o con nosotros mismos
en el futuro, ya que al estar todo el proyecto encapsulado en una sola carpeta y estando el working
directory en la misma carpeta, nuestros scripts funcionarán en el ordenador de otra persona y también en
nuestro futuro ordenador.
1.11.55. Haga una frase que tenga sentido con las palabras knitr,
archivo, markdown, Rmd, Yihui Xie, package, reproducible, pandoc
Por ejemplo: Yihui Xie es un programador que ha desarrollado el package knitr. Este package permite
mezclar texto y análisis estadísticos hechos con R en archivos con extensión .Rmd. Esto favorece la
investigación reproducible ( RR). En los ficheros Rmarkdown, el texto debe estar escrito en Markdown.
Cuando procesas los archivos .Rmd con knitr y pandoc puedes convertirlo fácilmente a diferentes formatos:
html, pdf, word, ….
Esto parece muy complicado, pero en RStudio es fácil-fácil (lo veremos)
En la siguiente ventana, hacer clic sobre Download R 3.3.3 for Windows y guardar el archivo de instalación.
Hacer clic sobre R-3.3.3.pkg y guardar el archivo de instalación. Ejecutar el archivo descargado para proceder a la
instalación de R.
Si abrimos RStudio vamos a ver algo parecido a lo que se muestra en la siguiente imagen:
Una vez estamos en RStudio, podemos escribir y ejecutar las órdenes de varias formas:
directamente en la consola
a través de un script ( .R)
con ficheros Rmarkdown ( .Rmd)
2.3.1 Consola.
Por defecto, la consola se encuentra en el panel inferior-izquierdo. ¿Vemos la pestaña que pone Console?
Inmediatamente debajo aparece un texto informativo y, finalmente, el símbolo “>”. Aquí es donde R espera que le demos
instrucciones. Para ejecutarlas y obtener el resultado pulsamos enter.
2.3.2 Scripts.
Trabajar en la consola es muy limitado ya que las instrucciones se han de introducir una a una. Lo habitual es trabajar
con scripts o ficheros de instrucciones. Estos ficheros tienen extensión **.R**.
Se puede crear una script con cualquier editor de texto (uno de los más populares es Tinn-R), pero nosotros lo haremos
desde RStudio. Para ello, seleccionamos la siguiente ruta de menús: File > New File > R script
Figure 2.6: Figura 6. Generar un R script
El panel del script se sitúa en la parte superior-izquierda de RStudio. Ahora podemos escribir las instrucciones línea por
línea. Las instrucciones las podemos ejecutar una a una o las podemos seleccionar y ejecutar en bloque. Para ejecutar
las instrucciones tenemos varias alternativas:
Hacemos clic en el botón: Run (botón situado en la parte derecha de las opciones del panel de script)
Pulsamos Ctrl+r
Ejecutamos el código desde las opciones del menú Code. Sinceramente, esto nunca lo hemos utilizado. ¡Cuestión de
comodidad!
Como se muestra en la imagen más abajo, vamos a escribir nuestro primer script.
Figure 2.7: Figura 7. Mi primer script
File > Save as.. y seleccionar la ruta donde se quiere guardar el fichero.
Hacer clic en el botón Guardar que se encuentra en la parte izquierda de la cinta de opciones del script.
2.3.3 Entorno.
El panel, llamémoslo, de entorno esta compuesto de dos pestañas: Environment y History.
En el Environment se irán registrando los objetos que vayamos creando en la sesión de trabajo. También tenemos la
opción de cargar y guardar una sesión de trabajo, importar datos y limpiar los objetos de la sesión. Estas opciones están
accesibles a través de la cinta de opciones de la pestaña.
Figure 2.8: Figura 8. Panel de entorno de RStudio
En la pestaña History se registran las instrucciones ejecutadas. Como opciones, podemos cargar y guardar el historial
de la sesión, seleccionar una o más instrucciones y enviarlas bien a la consola bien al script, y limpiar el historial.
2.3.4 Miscelánea: Archivos, Gráficos, Paquetes, Ayuda, Visor.
Con el nombre de Misceléna nos referimos al panel que se encuentra en la parte inferior-derecha del escritorio de
RStudio. ¡No sabíamos cómo llamarlo!
En este panel cabe destacar las siguientes pestañas, cada una con diferentes opciones:
Para crear un proyecto en un nuevo directorio, hacemos clic en el botón New Directory. Seguidamente, seleccionamos el
tipo de proyecto, en nuestro caso Empty Project. Ahora, asignamos un nombre al directorio (carpeta) que se va a crear y
que al mismo tiempo será el nombre del proyecto de R. Para terminar, hacemos clic en el botón Create Project. Al seguir
este proceso se habrá creado una carpeta en Documentos y un fichero nombre_carpeta.Rproj .
Para crear un proyecto en una carpeta que ya existe, hacemos clic en el botón Existing Directory y después
seleccionamos la carpeta ayudándonos del Browse.. si fuera necesario. Una vez elegida la carpeta, clicamos en Create
Project.
Para abrir un proyecto hacemos doble clic sobre el archivo con extensión .Rproj o lo abrimos desde el menú de
RStudio: File > Open Project…
Ventaja de los proyectos: cualquier fichero que creemos (script de R, documento de Rmarkdown, etc.) y guardemos se
guardará en la carpeta del proyecto.
Aquí os dejamos dos lecturas cortas sobre los proyectos, la segunda incluye información sobre cómo crear proyectos.
Utilizando la función install.packages(). El nombre del paquete que queremos instalar debe ir entre comillas.
2.6 Ayuda en R.
En muchas ocasiones necesitamos ayuda sobre cómo funciona una determinada función, cuáles son sus argumentos, etc.
Hay varias formas de pedir la ayuda de R. Vamos a pedir la ayuda de la función mean().
help(mean)
?mean
mean # y pulsamos la tecla F1
Si ejecutamos directamente la función library() se abrirá una ventana listando los paquetes que tenemos instalados en
R. En el escritorio de RStudio, en la pestaña Packages también tenemos en listado de paquetes instalados (organizados
en dos bloques: User Library y System Library)
library()
Para obtener ayuda sobre un determinado paquete…
library(help="foreign")
En ocasiones junto con los paquetes se facilita una documentación sobre su uso, a esto se le llama vignettes.
vignette() # Para ver una lista de las vignettes a las que podemos acceder por paquete
y a una vignette concreta de un paquete:
vignette("Sweave-journals", package = "AER") # se abrirá un pdf con la documentación.
Pero sin duda, una de las mejores fuentes de ayuda en R nos la proporciona internet. Bien haciendo directamente en
google la búsqueda sobre el tema que estamos interesados, bien acudiendo a algunas de las muchas webs que ofrecen
ayuda. Algunas de las más populares y recomendables webs son:
R-Bloggers
Stack Overflow
rseek
Cookbook for R