El objetivo de esta sección es proporcionar una breve primera introducción a R y RStudio para personas que no han tenido contacto previo con estos programas y explicitar la forma que tendremos de interactuar con ellos; es decir, la forma de trabajar con ellos (workflow).
El curso es una introducción a la Ciencia de Datos: haremos diversos análisis con datos y para ello utilizaremos R. R será el programa que hará los cálculos, gráficos, informes, pero interactuaremos con R, le daremos las ordenes a R, a través de otro programa: RStudio. Así que tendremos que instalar los 2 programas. Por ello, en la web del curso tienes un fichero donde se explica como hacerlo: concretamente aquí.
Aquí tienes un articulo que explica, con mucho detalle, como empezar a trabajar con R: instalación, configuración, paquetes, etc…
Se puede trabajar con R/RStudio de varias formas. Nosotros
trabajaremos, casi siempre, con Rprojects. Enseguida
diremos qué son los Rprojects, pero de momento podemos pensar que son
carpetas donde se almacenan los ficheros necesarios para hacer un
análisis de datos.
Dentro de esas carpetas o Rprojects tendremos distintos
tipos de ficheros: ficheros de datos, imágenes etc… y unos ficheros,
llamados habitualmente scripts que contendrán las
instrucciones que queramos que sean ejecutadas por R/RStudio. Bien, pues
esos scripts o ficheros de ordenes pueden ser de varios tipos.
Concretamente, durante el curso utilizaremos 2 tipos de ficheros para
darle las ordenes a R:
ficheros .R , y
ficheros Rmarkdown o
ficheros .Rmd.
Lo normal es que nunca hayas oído hablar de todo esto, así que al principio te sonará complicado, pero en nada te parecerá lo más natural del mundo. Bird by bird!!!
Ya hemos hablado de R, pero …
Ya lo habéis visto mientras hacíamos algún ejemplo, pero para los nuevos: R es un lenguaje de programación y un entorno para el análisis estadístico y gráfico. Se puede utilizar para muchas cosas ya que es un lenguaje de programación, pero principalmente se utiliza en el campo de la estadística y la ciencia de datos; de hecho, R fue inicialmente creado en 1993 por dos estadísticos de la Universidad de Auckland: R. Ihaka y R.Gentleman1. A partir de 1997 el desarrollo de R (o base-R) es gestionado por un grupo de programadores conocido como “The R-core team”; pero actualmente, el entorno o ecosistema R es el resultado de la colaboración de toda una comunidad de usuarios que extiende las utilidades de base-R mediante la creación de nuevos paquetes y funciones.
R forma parte del sistema GNU y se distribuye bajo la licencia GNU GPL por lo que los usuarios tenemos la libertad de usar, estudiar, compartir (copiar) y modificar el software; es decir, R es software libre. Además de software libre, R es gratuito y multiplataforma: está disponible para Windows, Macintosh y GNU/Linux.
La página web oficial de R se llama: The R Project for Statistical
Computing. Allí podrás encontrar toda la información y documentación
oficial acerca de R. Aunque si alguna vez la necesitas, se puede
consultar desde R con la función help.start() o, en un
formato visualmente más agradable, en este repositorio de Collin Fay
un destacado miembro de la actual comunidad R. Si quieres ver las
personas que forman parte del R core-team o que han contribuido al
desarrollo de R no tienes mas que teclear en R
contributors().
R proporciona un amplio abanico de herramientas estadísticas y gráficas (modelos lineales y no lineales, tests estadísticos, análisis de series temporales, algoritmos de clasificación y agrupamiento, etc.). Como R también es un lenguaje de programación, permite que los usuarios lo extiendan definiendo sus propias funciones y paquetes. De hecho, actualmente R se ha convertido de un proyecto colaborativo y abierto en el que sus usuarios pueden publicar paquetes que extienden su configuración básica. Para darte una idea de lo prolífica y colaborativa que es la comunidad R puedes visitar estos 2 proyectos: R-bloggers y R-Weekly. Precisamente estos 2 aspectos (abundancia de paquetes y comunidad de usuarios) son claves en el éxito de R
Ya hemos dicho que R (junto con sus paquetes) puede implementar una gran variedad de técnicas estadísticas y gráficas. Existe un repositorio oficial de paquetes: Comprehensive R Archive Network o CRAN. CRAN alcanzó los 10.000 paquetes en enero de 2017, y actualmente, julio de 2019, tiene 14.553 paquetes. Además, existen muchos más paquetes en repositorios como Bioconductor, Github y otros.
Obviamente, para usar R y sus paquetes tenemos que instalarlo
primero. Para ello “solo” tienes que ir a CRAN y descargar la distribución
de R adecuada para tu sistema operativo. Obviamente mejor la última
versión. En el momento de re-escribir estas notas la última versión es
R-4.1.1 llamada “Kick Things” released on 2021/08/10.
No te va a a hacer falta pero por si acaso, aquí tienes un vídeo de 1:30 donde se explica de manera sencilla como instalar R.
Pues es un programa que utilizaremos para interactuar con R. Las instrucciones que queramos dar a R para que las ejecute se las daremos a través de RStudio. La razón es que 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 realidad, RStudio es más que una GUI, es una IDE, 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 y el equipo de RStudio.
La versión de escritorio de RStudio también es libre y gratuita. Se puede descargar aquí. Tienes que descargarte el ‘installer’ adecuado para tu sistema operativo.
Se puede trabajar perfectamente con las opciones por defecto de RStudio, pero os recomiendo cambiar algunas opciones, así que vamos a configurar RStudio.
Está sección no es obligatoria, solo que es recomendable configurar
las opciones de RStudio. ¿Cómo? En RStudio, sigue está ruta de menús:
Tools > Global OPtions...
Se abrirá una ventana (que puedes ver abajo) con las opciones de
configuración de RStudio. De momento vamos sólo a tocar la categoría que
ves en la imagen; es decir, R General. Tienes que hacer dos
cosas:
desmarcar todas las casillas (quitarles los ticks)
Es importante, poner Never en la casilla donde pone
“Save workspace to .RData on exit”.
Al final, en mi ordenador, la ventana con las opciones de
R General queda como:
En tu ordenador debe quedar todo igual excepto la caja de texto. El texto de la caja le dice a RStudio donde se guardarán los archivos que vayamos generando; es decir, indica el directorio de trabajo por defecto. Como mi sistema operaivo es Linux y habitualmente trabajo en el escritorio de mi PC, en la imagen de abajo pone “~/Escritorio”, si mi sistema operativo fuese Windows pondría algo como “C:/Users/perezp/Desktop”. Te recomiendo trabajar sobre el escritorio o Desktop, pero puedes seleccionar la carpeta en la que más cómoda trabajes2.
Ya explicaré en clase porqué seleccionamos estas opciones en RStudio.
Tools > Global OPtions... y selecciona
Code. Intenta dejar la opciones de la pestaña
Editing como ves en la imagen de abajo. Concretamente lo
que más me interesa es que esté marcada la opción
Insert spaces for tabTools > Global OPtions... y selecciona
Code. Ahora intenta dejar las opciones de la pestaña
Saving como ves en la imagen de abajo. Lo más importante es
que en la caja de texto Default text encoding ponga:
UTF-8. Esto evitará que tengamos problemas con la
codificación de loa caracteres, por ejemplo con la eñe o con las
tildes.Ya tenemos R y RStudio instalados y configurados, así que vamos a empezar a toquetear RStudio.
Durante el curso vamos a utilizar R para hacer análisis estadísticos pero lo vamos a hacer a través de RStudio, así que el primer paso es familiarizarnos un poco con la interfaz de RStudio. Para acostumbrase a R y RStudio lo mejor es la práctica, pero si os hiciese falta, aquí tenéis un fantástico libro para habituarse a trabajar con R y RStudio.
Al abrir RStudio verás que al principio tiene 3 paneles, aunque enseguida abriremos un cuarto panel. La consola es el panel de la izquierda. Cuando tengamos 4 paneles la consola será el panel situado izquierda-abajo. Podemos pensar que la consola es lo más parecido a R, ya que en la consola se pueden ejecutar instrucciones de R directamente.
Cuando abras RStudio veras lo siguiente:
Consola (izquierda)
Environment/History (arriba-derecha)
Files/Plots/Packages/Help (abajo-derecha)
Ya sabemos que el panel de la izquierda es la consola. En la consola
se ve un mensaje de bienvenida que nos dice que versión de R estamos
usando y alguna cosa más. Al final del texto aparece el símbolo
>. A este símbolo se le conoce como prompt y
simplemente nos indica que el intérprete de R, que R, está listo para
ejecutar nuestras instrucciones.
¿Cómo le damos las instrucciones u ordenes a R? La forma más
inmediata es escribiendo las ordenes en la consola, después del prompt
(>). Por ejemplo, si escribimos en la consola
2+2 y presionamos Enter, R ejecutará la
instrucción y nos devolverá el resultado.
A veces usaremos la consola para ejecutar alguna instrucción, pero en general ejecutaremos las instrucciones a través de un “script”. Una razón para no usar la consola es que trabajar en la consola es muy limitado ya que las instrucciones se han de introducir una a una. Otra razón es que queremos tener un registro con todas las instrucciones que ejecutemos para poder replicar nuestro análisis en otro momento; así que lo habitual es trabajar con scripts o ficheros de instrucciones.
Un script no es más que un fichero de texto con extensión
.R en el que escribiremos las instrucciones que queramos
que R ejecute.
Vamos a crear nuestro primer script. Para ello tienes que seguir esta
ruta de menús en RStudio: File > New File > R Script.
Visualmente:
Cuando pinches con el ratón en R Script se abrirá en
RStudio un nuevo panel, el cuarto, arriba a la izquierda.
Visualmente:
Este cuarto panel (arriba-izquierda) en realidad es un editor de texto. En él podemos escribir las instrucciones que queramos que ejecute R. Por ejemplo, fíjate en la siguiente imagen lo que he escrito en el panel arriba-izquierda:
He escrito estas cuatro lineas:
# mi primer script de R
2 + 2
5 * 6
400/2
Escribe tú también (o copia y pega) estás cuatro lineas de texto en el editor (arriba-izquierda) de tu Rstudio.
R ejecutará, cuando se lo indiquemos, las lineas de instrucciones una a una.
Una vez hayas escrito o pegado esas 4 lineas en RStudio, verás que la
primera linea es diferente: lo más evidente es que está en color verde,
pero en realidad lo importante es que comienza con el símbolo
#. Este hecho, está marcando/diciendo a R que esa linea es
un comentario para los humanos, para nosotros, no es código R y por
tanto R no la ejecutará.
En un script sólo se pueden escribir 2 cosas:
comentarios (si la linea comienza con #). R no las
ejecutará
instrucciones R (no comienzan con #). R las
ejecutará si están escritas en R; es decir, si siguen las reglas del
lenguaje R. Si están mal escritas R nos devolverá un mensaje de error.
Tenemos que aprender R ya!!!
Hemos escrito cuatro lineas en nuestro script y ahora queremos que R las ejecute. R ejecutará, cuando se lo indiquemos, las lineas de instrucciones una a una.
Para ejecutar una linea, situamos el cursor en ella y pulsamos Crtl + Enter.
Please, sitúa el cursor en la primera linea y pulsa Crtl +
Enter. Observa qué ha ocurrido. Le hemos dicho a R que
ejecute la primera linea, pero como esta primera linea comienza con
#, R la ha interpretado (correctamente) como un comentario
y, por supuesto, no la ha ejecutado, por lo que ha pasado a la segunda
linea, y esta vez sí que la ejecuta. Como la segunda linea no comienza
con #, R la interpreta como una instrucción de R y, sí la
entiende (si las has escrito correctamente siguiendo la sintaxis o
lenguaje de R), ejecutará la instrucción. R entiende que significa
2 + 2, así que ejecuta la instrucción y nos devuelve el
resultado en la consola.
En la imagen de abajo yo ya he ejecutado la instrucción
2 + 2. R nos muestra el resultado en la consola: primero
nos muestra, en azul, la instrucción que ha ejecutado; es decir
> 2 + 2 y luego nos nos muestra, en negro, el resultado
de la ejecución de la instrucción; es decir [1] 4. Ya
veremos que significa el [1] de la linea de resultados.
Es más fácil hacerlo que contarlo, aunque puede que te atasques en alguna cosa, normal!!. Por ejemplo, si en lugar de poner el cursor en la segunda linea, señalas o subrayas solo parte de la linea, entonces, seguramente R no te entenderá. Ahora te toca a ti: please, ejecuta la tercera linea de tu script.
¿Cómo le decimos a R que ejecute la tercera linea 5 * 6?
Cuando lo hacíamos en la consola simplemente había que pulsar
Enter, pero ahora estamos trabajando en un script: hay que
situar el cursor en la linea que queremos ejecutar y darle a
Crtl + Enter. R ejecutará la instrucción y nos
devolverá el resultado en la consola.
Enseguida aprenderemos más instrucciones o funciones de R, ahora solo estamos intentando familiarizándonos con el interfaz de RStudio. Ya sabemos como crear un fichero con instrucciones de R (ó script) y como ejecutar esas instrucciones.
Lo normal es que guardes tus scripts en un archivo por si tuvieses
que volver a correr las mismas instrucciones más adelante. Para guardar
tus instrucciones en un fichero sólo tienes que seguir esta ruta de
menús en RStudio: File > Save as ...
Tendrás que elegir un nombre para tu script y decidir en que carpeta
de tu ordenador guardarlo. Si decides que tu script se llame
my_script_01, se creará un fichero (donde tú hayas
decidido) llamado my_script_01.R. Fíjate que la extensión
del archivo es .R, está extensión
identifica los scripts o ficheros con instrucciones de R.
Esto vas a acabar entendiéndolo en poco tiempo, pero cuanto antes lo entiendas mejor: damos las ordenes/instrucciones a R por escrito, generalmente usamos “scripts”; es decir, escribimos las instrucciones en un fichero con extensión .R. Para ejecutar las ordenes que hemos escrito en nuestro fichero R hemos de, linea por linea, teclear: Crtl + Enter. Si la orden tiene sentido, es decir, si R entiende la orden, la ejecutará y te mostrará el resultado en la Consola.
Bien, ya sabemos hacer que R ejecute nuestras instrucciones: podemos ejecutar ordenes en la Consola (con Enter) o en un script (Crtl + Enter). Usaremos la consola a veces, muchas veces trabajaremos con scripts o ficheros .R pero, poco a poco, acabaremos trabajando de otra forma.
Como queremos que nuestros análisis sean reproducibles, habitualmente
trabajaremos con Rprojects y con
ficheros .Rmd. Sí!!, en lugar de con
ficheros .R (o scripts) trabajaremos con
ficheros **Rmarkdown** ó ficheros .Rmd. Ya lo
veremos, pero antes tendremos que familiarizarnos un poco más con el
lenguaje R. De momento seguimos con el interfaz de RStudio.
Vamos a mirar con un poco más de detalle los 4 paneles de RStudio. Como puedes ver en la imagen de abajo, generalmente, a la izquierda encontramos la consola y el editor de scripts. Ya sabemos que desde estos dos paneles podemos dar instrucciones a R para que las ejecute.
Veamos un poco los 2 paneles de la derecha. Podemos pensar que son
paneles auxiliares, nos ayudarán en determinadas tareas. Estos dos
paneles de la derecha tienen cada uno varias pestañas. Por ejemplo, el
panel que está en la posición arriba-derecha tiene cuatro pestañas:
Environment y 3 más3. Enseguida veremos que al interactuar con R
iremos creando objetos (por ejemplo un vector o una matriz o una tabla
de datos). Estos objetos estarán guardados en la memoria del ordenador
pero los “veremos”, aparecerán en la pestaña Environment.
En la pestaña History tendremos un listado con las
instrucciones de R que hayamos ejecutado previamente en nuestra actual
sesión de R (por ejemplo 2 + 2). Otro ejemplo: a veces en
nuestro análisis con R haremos un gráfico o varios, podremos ver el
gráfico en la pestaña Plots en el panel situado
abajo-derecha.