Introducción a R

Prefacio

Este es el primero de muchos artículos que vamos a escribir sobre R. Para escribir estos artículos y notas sobre R hemos utilizado como base la documentación oficial. A este material le hemos agregado nuestro toque para hacerlo interactivo y con prácticas en línea.

Adicionalmente vamos a incorporar mucho material práctico e inclusive teórico para tener una mejor idea de cómo se producen los resultados que arroja R.

Esta es una introducción al entorno, el lenguaje y sus paquetes.

R se distribuye gratuitamente bajo los términos de la GNU General Public Licence y está accesible en línea en la página The R Project for Statistical Computing.

R está basado en el lenguaje S desarrollado por Rick Becker, John Chambers y Allan Wilks, en los Laboratorios Bell (Bell Labs). Se puede decir que R es la versión de GNU del lenguaje S, creado por Ross Ihaka y Robert Gentleman. Es un lenguaje y un entorno para la estadística computacional, además ofrece facilidades para construir gráficos, almacenarnos y mostrar de forma visual el resultado de una investigación, ya sea mediante documentos y aplicaciones interactivas. El lenguaje S es la base para el sistema comercial S-PLUS.

R ofrece muchos paquetes enfocados en estadísticas y probabilidades, gráficos diversos, inclusive para modelos lineales, pruebas estadísticas, análisis de series de tiempo, clasificación, agrupamiento (clustering), machine learning, entre otros. Todos estos paquetes son contribuciones de la comunidad de R.

En la serie de artículos vamos a incorporar información sobre los tipos de datos que existen, la programación, flujos y lógica, paquetes, gráficos así como en su aplicación para hacer modelos estadísticos.

¿Qué es R?

R es un entorno y lenguaje de programación con un enfoque al análisis estadístico y la estadística computacional. Es uno de los lenguajes más utilizados en investigación por la comunidad estadística, siendo además muy popular en el análisis de datos, campos como la minería de datos, la minería de texto, la investigación biomédica, la bioinformática, las matemáticas financieras, entre otros.

R al estar orientado a las estadísticas, proporciona un amplio abanico de herramientas aplicadas a diferentes áreas como la biología, la medicina, la física, la economía y las finanzas, entre otros.

Entre otras características de R, podemos nombrar su capacidad de generación de gráficos para mostrar el resultado del trabajo. Estos gráficos son de alta calidad y se pueden almacenar en diversos formatos.

R también puede usarse como herramienta de cálculo numérico y a la vez ser útil para la minería y análisis de datos.

Lenguaje de programación R

R es un lenguaje que combina el paradigma Funcional y Orientado a Objetos, en este sentido es muy versátil y extensible mediante los paquetes disponibles en CRAN - Comprehensive R Archive Network.

  • Funcional significa que las funciones en R se pueden manipular como se manipulan los vectores. R es un lenguaje de programación funcional y por ello las funciones se pueden utilizar para hacer cualquier cosa. Se pueden asignar a variables, almacenarlas, asignarlas a listas, pasarlas como argumentos a otras funciones, se pueden crear funciones dentro de otras funciones y una función puede retornar otra función como resultado. En particular las funciones son objetos, lo cual nos lleva al punto siguiente.

  • Orientado a Objetos significa que las variables, los datos, las funciones y sus resultados se pueden manipular como objetos. Estos objetos tienen un nombre y una estructura, además de las funciones que los manipulan. En particular algunos objetos se pueden manipular mediante los operadores, aritméticos, de comparación o lógicos. Las opciones de las funciones son objetos que se pueden manipular, así como las fórmulas o expresiones.

R es un lenguaje interpretado (como Java) y no compilado (como C, C++, Fortran, Pascal, etc.), lo cual significa que los comandos escritos en el teclado son ejecutados directamente sin necesidad de construir ejecutables.

Cuando se ejecuta un comando en R este manipula objetos que están en la memoria volátil del computador, no se utilizan archivos o almacenamiento secundario. Este hecho puede ser una de las ventajas ya que ofrece un buen desempeño para ciertas tareas, pero para la manipulación de grandes volúmenes de datos puede ser una desventaja. Se utilizan archivos de entrada y salida para consumir datos y para generar los resultados. El origen de los datos puede ser local o en línea. Es decir, los datos y las estructuras que se utilizan para manipularlos deben entrar en la memoria del computador para poder trabajar con R.

Los resultados se pueden visualizar directamente en la pantalla, se pueden guardar en objetos o se pueden almacenar en archivos de la computadora. Los objetos en R se pueden manipular y pueden servir como insumo a otros métodos.

Las funciones disponibles están guardadas en una paquetes (librerías) disponibles desde el mismo momento en que se ejecuta la línea de comandos o se pueden cargar a memoria al momento de ejecutar algún programa.

Es un entorno

R ofrece una serie de facilidades integradas para manipular datos, realizar cálculos simples o complejos así como la graficación de los resultados. Se considera un “entorno” ya que se planificó como un conjunto coherente de herramientas integradas que entre otras cosas:

  • Ofrece facilidades para importar datos ya sea de origen local o en internet y exportarlos a archivos.
  • Ofrece múltiples operadores numéricos y lógicos así como estructuras de control como condicionales y ciclos, inclusive con manejo de recursión.
  • Gran cantidad de paquetes con funciones preconstruidas y parametrizables además de la posiblidad de extender el lenguaje con paquetes y funciones propias.
  • Gran cantidad de paquetes construidos y publicados por la comunidad de desarrolladores.
  • Estructuras de datos que facilitan la manipulación de la información en arreglos (vectores) o matrices (matrix), listas (lists) y tablas de datos (dataframes).
  • Extensa cantidad de herramientas integradas para analizar datos.
  • Facilidades para generar gráficos y representaciones visuales que se pueden revisar en la computadora o de forma impresa.

Todos los objetos creados en R se encuentran en el ‘ambiente’ (enviroment). Este ambiente incluye todos los objetos definidos por el usuario como, vectores, matrices, listas, funciones, tablas de datos, etc. Cada sesión de R se puede salvar en archivos de manera que este ‘ambiente’ se puede cargar y continuar el trabajo donde se dejó.

Instalación

En la página principal de R se ofrecen las instrucciones para instalarlo en Windows, Linux y MacOS. Siga las instrucciones oficiales del sitio principal y descargue la versión precompilada (lista para instalar y ejecutar en su sistema) que se adapte a sus necesidades.

R como aplicación de escritorio

El equipo de R desarrolló una aplicación de escritorio que funciona en Windows, Linux y MacOS. Esta es la forma más amigable de iniciarse en R y al mismo tiempo la más popular.

Línea de comandos (R interactivo)

La interfaz típica de R es la línea de comandos que ofrece de forma gráfica o ejecutando comandos desde la cónsola del sistema de operación. La cónsola de R espera por los comandos del usuario y normalmente aparece un símbolo >, que es el indicador de que R está esperando. Si asumimos que R está corriendo en UNIX y la cónsola inicia con el símbolo $, entonces el inicio de sesión se parece a lo siguiente:

$ R

R version 3.3.3 (2017-03-06) -- "Another Canoe"
Copyright (C) 2017 The R Foundation for Statistical Computing
Platform: x86_64-apple-darwin13.4.0 (64-bit)

R es un software libre y viene sin GARANTIA ALGUNA.
Usted puede redistribuirlo bajo ciertas circunstancias.
Escriba 'license()' o 'licence()' para detalles de distribucion.

R es un proyecto colaborativo con muchos contribuyentes.
Escriba 'contributors()' para obtener más información y
'citation()' para saber cómo citar R o paquetes de R en publicaciones.

Escriba 'demo()' para demostraciones, 'help()' para el sistema on-line de ayuda,
o 'help.start()' para abrir el sistema de ayuda HTML con su navegador.
Escriba 'q()' para salir de R.

[Previously saved workspace restored]

>

Estadísticas y probabilidades en R

El propósito original de R era experimentar e investigar sobre nuevos métodos de modelación y aplicación de la estadística en diversas áreas. Es decir, muchos investigadores hoy en día, utilizan R como un sistema estadístico, de hecho en R se han implementado muchas técnicas clásicas y modernas, algunas de estas técnicas ya están incorporadas a R y otras están implementadas como paquetes.

La característica principal de R es la generación de objetos que luego son consumidos por otros objetos, de esta forma el proceso de análisis es la composición de secuencias de comandos que producen resultados que luego son consumidos por otros métodos. Son muchas las opciones disponibles, ya que la mayoría de los métodos estadísticos ya están implementados.

Práctica

Les dejamos una cónsola para que puedan tener un acercamiento al lenguaje.

Utiliza la cónsola para ejecutar comandos y experimentar.

#Hazle click al botón Run 1+2 a<-1 b<-2 a+b c<-c(1,2,3,4,5) c 5*c c-2 plot(rnorm(1000))

La mayoría de nuestros artículos permitirán que se realicen prácticas a través de esta cónsola en línea e interactiva. De esa manera es sencillo practicar y aprender los conceptos e ideas que se presentan.

Copyright © 2014-2017 Synergy Vision. Los artículos del Corpus se comparten bajo los términos de la licencia Creative Commons con Reconocimiento, Propósito no comercial, Compartir contenido similar, 4.0 Internacional (CC BY-NC-SA 4.0).

Citar el artículo.