Introducción a R

R

Si tenemos que definir R, diríamos que se trata de un lenguaje y entorno de programación con un claro enfoque al análisis estadístico. No obstante, a pesar de que ese era su planteamiento inicial, en la actualidad, dada la aportación de muchos académicos e investigadores, se ha convertido en un lenguaje muy completo que le hace muy popular en el campo de Data Mining, investigación analítica, bioinformática o matemáticas financieras.

Inicialmente desarrollado por Robert Gentleman y Ross Ihaka del Departamento de Estadística de la Universidad de Auckland en 1993, R es un programa en continuo proceso de evolución. En la actualidad, es el R Development Core Team quien se responsabiliza de su desarrollo.

R es parte del sistema GNU, y se distribuye bajo la licencia GNU GPL. Se encuentra disponible para los sistemas operativos Windows, Mac OS, Unix y GNU/Linux. Así, a modo de resumen, podemos decir que por R nos podemos referir no sólo al lenguaje sino al intérprete que ejecuta el código escrito, el sistema que es capaz de representar visualmente lo que hemos programado y la aplicación que engloba a los anteriores.

Ventajas de R frente a otros lenguajes

Cuando una persona se plantea aprender un lenguaje de programación, en nuestro caso aplicado a la ciencia, inteligencia artificial, o análisis de datos, la pregunta que surge es si la elección es acertada o qué ventajas e inconvenientes presenta dicho lenguaje frente a otras alternativas. Siendo conscientes de la velocidad a la que evoluciona este campo, los lenguajes dominantes son susceptibles también de dichos cambios, pudiendo alternar sus posiciones en función de qué funcionalidades (se) desarrollen. En esta sección, tratamos de describir las ventajas de R frente a otras alternativas como Python.

Comparando R con Python, el primero pierde frente al segundo si se comparan como lenguajes de programación propiamente dicho. R no es un verdadero lenguaje de programación y, por tanto, Python destaca como una herramienta de desarrollo o construcción de código. Esto es debido a algo que siempre se ha destacado de Python, la versatilidad y la facilidad de lenguaje o sintaxis. Sin embargo, en visualización, se podría afirmar que R sigue por delante, con paquetes como ggplot2, rCharts o googleVis. De hecho, librerías de Python para visualización, como Plot.ly, también tienen cabida en R. Aunque Python ya cuenta con librerías destinadas al análisis estadístico de datos, R sigue igualmente por delante en este aspecto. Si enumeramos algunas de las ventajas (no exclusivas) de R:

  • Elevado número de funciones o paquetes para análisis estadístico.
  • Excelente herramienta para procesado y tratamiento de imágenes.
  • Numerosas funciones específicas para postprocesado y visualización de resultados, generando gráficos de alta calidad.
  • Puedes utilizar Python desde R usando rPython
  • Gratuito, código libre y abierto. No requiere de licencia, se puede extender por tener acceso al código fuente y puedes corregir, modificar o ampliar el código sin depender del proveedor.
  • Independiente de plataforma, funcionando en los sistemas operativos Windows, Mac OS, Unix y GNU/Linux. PRACTICA INTRODUCCIÓN A R PRIA JESÚS TURPÍN
  • Acceso a una amplia documentación, tanto en comunidad (foro o blog) como a nivel académico (artículos de investigación revisados por pares).

Podemos concluir que la elección de R o Python atiende más a las necesidades específicas de cada uno, y entendidas dichas necesidades, en la identificación de las capacidades de cada opción para resolver el problema. Generalmente, si se trabaja en aplicaciones de investigación, estadística o análisis de datos, R será la opción dominante. Si se trata de aplicaciones más de ingeniería o programación, Python será la primera. R no requiere que seas programador; de hecho, no es un lenguaje para programadores sino más para estadísticos. Python sí es un lenguaje más vinculado a la programación y, por ello, que su sintaxis sea tan legible.

Entorno de desarrollo

Existe la opción de ejecutar R desde terminal o línea de comandos (Console Mode) o tomar la opción de trabajar con un IDE (Integrated Development Environment) o entorno de desarrollo.

Existen numerosas opciones de IDE para trabajar con R, pudiendo destacar a Bluefish, Eclipse, Emacs, jEdit, Vim, notepad++, Visual Studio o RStudio. Es este último editor el que propondremos como herramienta de desarrollo en este curso, aunque previamente aprenderemos a usar el entorno de línea de comandos.

Instalación y prueba de R

  1. Prueba RStudio Cloud

  2. Instala R

  • Ve a https://cran.rstudio.com/ y descarga la versión de Windows.
  • Busca el enlace para instalar R por primera vez. ¿Cuál es la última versión?
  • Instala R en el directorio por defecto (program files).
  • Abre un terminal (cmd) y navega al directorio donde lo hayas instalado. Como comprobarás hay 2 ejecutables: R y Rscript. El primero te permite “entrar en el entorno de R”, y el segundo usar R fuera del entorno.
  • Entra en el entorno R mediante el comando R. Verás que el prompt ha cambiado. Para salir de R escribe q(), esta vez sin guardar cambios.

Código comentado

El Símbolo # comenta el código y el intérprete de R no ejecutará

Aritmética en R

Las operaciones aritméticas en R son muy sencillas:

  • Suma: +
  • Resta: -
  • Multiplicación: *
  • División: /
  • Potencia: ^
  • Módulo: %%
  1. Entra al entorno de R y practica con las operaciones:
  • 5+5
  • 5-6
  • 7x5
  • 45/2
  • 44/2
  • Resto división 45/2
  • \(\pi e^2\)
  • \(\frac{(-2-\sqrt{2})}{2\pi}\)

(pista, e es el número Euler =2.718… Aunque no hemos llegado a las funciones, averigua qué función te permite obtenerlo).

Variables y operador asignación

Como en cualquier otro lenguaje, R permite crear variables en la que guardar valores para reusarlos posteriormente.

R es un lenguaje de tipado dinámico, esto quiere decir que no es necesario especificar el tipo de dato al declarar una variable.

Ejemplo de creación de una variable:

mi_variable <- 4 
# Crea la variable “mi_variable” y le asigna el #valor 4
  1. Crea ocho variables cuyos nombres son (uno, dos, … ocho) y vuelve a realizar el ejercicio anterior Imprime el valor de cada una de las variables anteriores.
uno <- 5+5
#continua

print(uno)
#continua
  1. Ejecuta la siguiente línea de código:
mis_manzanas <- 5
mis_naranjas <- "seis"
mi_fruta <- mis_manzanas + mis_naranjas

¿Qué ha ocurrido? Imprime el valor de la variable mi_fruta Corrige el error y ejecuta la última línea

mi_fruta <- mis_manzanas + mis_naranjas

Tipos Básicos en R

  • Numérico, ya sea entero o doble (numeric)
  • Texto (character)
  • Booleano o lógico (logical). TRUE ó FALSE. Cuidado porque en R hace distinción de mayúsculas
  • Complejos (complex).
  1. Crea tres variables: “numero”, “texto” y “booleano” y asigna los valores valor 42.5, “fp rules”, FALSE respectivamente. Ahora cambia sus valores por 42, “R es facil” y TRUE. Imprime por pantalla el valor de las tres variables.

  2. Comprueba ahora el tipo de cada una de las variables. Repítelo con las variables del ejercicio anterior (“uno”, …, ”ocho”). Utiliza para ello la función class().

  3. La función date() nos muestra la fecha actual del sistema. Averigua a qué tipo de dato básico es.

  4. ¿Cuántos tipos básicos tiene R? Enuméralos en un comentario.

  5. Continúa practicando estos conceptos. Abre un editor de código y escribe todos comandos de los ejercicios anteriores en un fichero con el formato PRIA_nombre_apellido.R Sal del entorno de R sin guardar cambios en el entorno.

Extra 1: Busca información sobre el comando Rscript. Prueba ejecutar Rscript sobre el fichero de tu práctica. Agrega al final el comando utilizado, en un comentario

Extra 2: La función source() nos permite ejecutar un script dentro del entorno R. Esto nos ayudará a dividir el código, pudiendo comentar esas líneas cuando no queremos ejecutar todo el código completo. Crea tres archivos .R con la secuencia de comandos de cada sección de las anteriores Aritmetica.R (ejercicios 1-2), Variables.R (ejercicios 3-4), TiposBasicos.R (ejercicios 5-9) Escribe un 4º script Todo.R en el que debes ejecutar los tres scripts anteriores. Ejecútalo todo con Rscript en el orden indicado arriba.

Extra 3: Busca información sobre todos los comandos para instalar el motor de R (Sólo R, no Rstudio) en una consola Linux. Prepara uno o varios Shell scripts con todos los comandos necesarios e intenta la instalación en un entorno linux.

Extra 4: Crea un fichero de texto “vacio.R” y programa en un cron la ejecución de un script de R vacío para que se ejecute cada minuto. Adjunta el crontab en la entrega junto con el resto de ejercicios.

Actividad Colaborativa: Si has terminado antes que tus compañeros y has desplegado tu servidor de R en tu máquina local, ayuda a tus compañeros a terminar su parte.

Como material extra de aprendizaje, recopila información sobre la puesta en producción de aplicaciones en R.