R es muchas cosas:
Es una simple calculadora.
Es un programa para el análisis de datos, que dispone de procedimientos específicos para:
Es una herramienta de cálculo numérico con procedimientos para el álgebra lineal, las ecuaciones diferenciales, la optimización, etc.
Es un lenguaje de programación con las siguientes características:
Es una parte integral del proceso de investigación reproducible.
Es sobre todo un entorno de trabajo en el que se pueden manipular múltiples elementos: archivos de datos, gráficos, accesos a internet, … Este entorno de trabajo cuenta con la indiscutible ventaja de ser idéntico en los tres grandes sistemas operativos: Linux, Windows y Mac.
R es software libre y por tanto no es necesario pagar para adquirirlo. Se puede descargar directamente desde la web www.r-project.org:
Todos los que el usuario pueda desear. La instalación básica de R incluye procedimientos para prácticamente todos los métodos estadísticos tradicionales: estadística descriptiva, gráficos, inferencia, regresión, análisis de la varianza, …
Además es posible descargar en cualquier momento desde la web de R nuevas librerías o “packages” que incrementan los procedimientos disponibles. En junio de 2014, en la web “oficial” de R (CRAN, Comprehensive R Archive Network), hay 5663 librerías que pueden descargarse libremente.
Las librerías se encuentran organizadas en grupos (Task Views) en función de su área de aplicación.
Hay además numerosas iniciativas orientadas al uso de R en campos específicos. Muchas de ellas cuentan con sus propios repositorios de datos y procedimientos estadísticos implementandos en librerías:
R Open Science: librerías para el acceso a datos públicos.
Bioconductor: Bioinformática con R, muy orientado a genómica.
Fisheries Library: análisis de pesquerías con R.
Rmetrics: Análisis de mercados financieros con R.
R-Geo: Estadística espacial con R
Github: paquetes en desarrollo, pero listos para su uso.
Aprender R va mucho más allá de pasarse a este software porque es gratuito. Que sea gratuito es innegable que ayuda a su difusión. Pero la gran ventaja de R es la disponibilidad actual de casi cualquier procedimiento estadístico imaginable, así como sus enormes perspectivas de desarrollo futuro. R es ya hoy el lenguaje universal del análisis de datos en todos los ámbitos.
En el New York Times de enero de 2009 se entrevista a una directiva de SAS Institute (Anne H. Milley, directora de marketing), que señala:
En el mismo artículo responde Frank Harrell, catedrático de Bioestadística en la Universidad de Vanderbilt (EEUU):
Precisamente por su carácter de software libre, el código de R es completamente abierto; cualquiera puede ver qué es lo que hace cada función y comprobar si lo hace bien. La amplia base de usuarios con que cuenta el programa en la actualidad produce como resultado que cualquier error sea detectado y corregido en tiempo record.
Deciden adoptar una sintaxis idéntica a la del lenguaje S, desarrollado por John Chambers y Richard Becker en los laboratorios Bell.
La primera versión del programa sale en 1994; en 1995 adopta una licencia de software libre GNU. La difusión del programa se realiza boca a oreja.
En 1996 publican en el Journal of Computational and Graphical Statistics un artículo describiendo el programa: R: A language for data analysis and graphics
En 1996 se crea una lista de correo en la Escuela Politécnica de Zurich. En 1997 se funda el R-Core group (grupo de voluntarios que se encargan de mantener el código del programa), y en 1998 se abre el primer repositorio de R en la Universidad Tecnológica de Viena.
Desde entonces el número de participantes en el proyecto se ha incrementado notablemente, así como el número de repositorios disponibles.
En el año 2000 se libera la primera versión estable de R, la 1.0. La versión actual es la 3.1.0 (Spring Dance).
Desde el año 2000 a la actualidad el número de usuarios de R se ha ido incrementando exponencialmente, así como el número de personas que contribuyen aportando nuevas librerías.
En la actualidad, Ihaka y otros colaboradores trabajan en una versión completamente renovada de R, con mejor gestión de recursos y mayor rendimiento en entornos con multiprocesadores.
En palabras del Dr. Ihaka (Entrevista en The New Zealand Herald de junio de 2009), el desarrollo de R tiene mucho que ver con la forma en que la gente consigue un coche nuevo en Nueva Zelanda:
Existen múltiples formas de interactuar con R:
Una terminal es una simple ventana del sistema operativo, que arranca R y nos deja el “prompt” esperando por nuestras instrucciones:
Obviamente este procedimiento deja al usuario prácticamente “solo ante el peligro”: no hay menús de ayuda, ni de configuración, ni de edición, …
las versiones de R para Windows y Mac, cuentan con sus propias interfaces gráficas de usuario que integran una consola de resultados, un editor de código, algún menú de ayuda, y cierta gestión de gráficos.
Rstudio es una interfaz gráfica para R desarrollada a comienzoa de 2011 por un grupo de informáticos y estadísticos de Boston (EEUU). La versión Open Source puede descargarse libremente desde www.rstudio.com:
En los tres últimos años ha experimentado un notable desarrollo y se ha convertido, de facto, en la GUI por excelencia para R. Dispone de versiones (idénticas en su funcionamiento) para Linux, Mac y Windows.
La interfaz de Rstudio permite un acceso más cómodo a la edición de código, los resultados, los gráficos, la descarga de librerías, los objetos en memoria, etc. Además permite generar muy fácilmente informes con los procedimientos y resultados de nuestros análisis en varios formatos (html, pdf y word).
Ni Rstudio ni las GUI estándar de R cuentan con ningún menú para el acceso a procedimientos estadísticos. Es el usuario el que debe escribir un “script” (un programa) en el que encadene los comandos necesarios para llevar a cabo el análisis que se propone realizar.
Normalmente un script se estructura en varias secciones (no necesariamente en este orden):
Cabecera: donde se cargan las librerías que se van a utilizar y el usuario define sus propias funciones (si las necesita).
Lectura de datos: se define el directorio de trabajo y se cargan los datos, bien directamente declarándolos en el propio script, o importándolos desde uno o varios archivos externos.
Procesamiento de datos: transformaciones de los datos si se requiere, asignación de etiquetas, identificación de valores perdidos, etc.
Aplicación de procedimientos estadísticos.
Generación de informe de resultados.
La siguiente captura de pantalla muestra un script muy simple que declara los valores observados de dos variables x e y en sendas muestras de tamaño 10 y realiza un t-test:
Depende:
Si sólo se realizan análisis estadísticos de forma esporádica, y estos análisis corresponden a los procedimientos más “tradicionales”, puede ser suficiente con cualquiera de los sistemas basados en menús (particularmente Rcommander o DeduceR).
Si el usuario desea:
Ser capaz de manipular sus datos, con entera libertad para transformarlos, agregarlos, desagregarlos, capturarlos “en tiempo real” desde distintas aplicaciones.
Utilizar librerías con procedimientos novedosos, o que no están incluídos en los menús de los sistemas citados (téngase en cuenta que hay casi 6000 librerías en R. Es imposible construir un sistema de menús que las incluya a todas).
Ser capaz de utilizar en el futuro procedimientos estadísticos que aún están en desarrollo, y que casi seguramente terminarán implementándose en R.
Ser capaz de aplicar los procedimientos que, cada vez con mayor frecuencia, se implementan para acompañar a libros de estadística (u otras disciplinas) que se apoyan en R.
Elaborar sus propios procedimientos, programándolos.
Elaborar informes o artículos que incluyan texto, datos, gráficos, funciones y resultados.
entonces deberá utilizar Rstudio y desarrollar sus propios scripts. Esta vía es más compleja, pero con diferencia, mucho más productiva a medio-largo plazo.
Para principiantes en R: el gran problema al que se enfrentan los principiantes es el desconocimiento del lenguaje y, por ende, de los comandos disponibles para la entrada de datos y la ejecución de procedimientos estadísticos. Una estrategia útil de trabajo es la siguiente:
Aprender los fundamentos básicos de la sintaxis de R. R es un lenguaje y como todo lenguaje tiene sus componentes y su gramática. Los componentes son las clases de objetos que maneja R y la gramática es el conjunto de reglas sintánticas que permiten la manipulación de tales objetos a través del uso de funciones.
Aprender las “palabras” del lenguaje: ¿qué palabras hay que utilizar para leer unos datos que están en excel, para llevar a cabo un análisis de la varianza o ajustar un modelo de regresión? Para ello:
podemos usar algún diccionario que nos resulte cómodo: una guía de referencia, alguna página web como Rdocumentation o Quick-R
podemos utilizar alguna interfaz con menús como Rcommander o DeduceR. Ambas generan el script de código que lleva a cabo el procedimiento que seleccionemos a través del menú. Mirando el script descubrimos qué comandos ha utilizado R para realizar esta tarea. Podemos guardar ese script, añadirle comentarios y ejecutarlo/reejecutarlo cuantas veces necesitemos desde la consola de R o desde Rstudio.
A medio plazo, veremos que nuestro conocimiento de R ha aumentado lo suficiente como para poder usar el programa con cierta fluidez, incorporando funciones de distintos paquetes e incluso siendo capaces de preparar funciones “a medida” para nuestros problemas.
SÍ. Como ya hemos señalado más arriba, R incorpora muchos más procedimientos estadísticos que ningún otro de los paquetes estadísticos del mercado; además los nuevos procedimientos estadísticos se incorporan a R antes que a ningún otro programa por lo que solo estarán disponibles en R.
Además, de hecho, SPSS ha decidido integrar R:
También SAS:
Y Statistica:
Por tanto, aunque utilicemos otro software, en algún momento necesitaremos R.
La utilización de R se incrementa constantemente, no sólo en el mundo académico sino también en el empresarial. A medida que R vaya incrementando su presencia en la empresa, cabe esperar que se incremente también la demanda de profesionales que sepan utilizar este programa. Por ello la formación en R comienza a resultar imprescindible en cualquiera que tenga que aplicar profesionalmente la estadística.
Ya en la actualidad son numerosas las demandas de empleo que requieren formación en R (todas fuera de España):
Jobs for R-Users
R Job Listings
Chanalytics Research
Open Analytics
conclusive Analytics
Blue Crest Capital
BASF Waltham Pet Nutrition
Anna Freud Center
Crescendo Bioscience
Ecohealth Alliance
Mango Solutions
Elecciones EEUU, 2012
Además empiezan a aparecer empresas que ofrecen servicios de gestión y mantenimiento de R en el ámbito empresarial. Ello facilita que muchas empresas que hasta ahora venían utilizando SAS, SPSS u otros paquetes de software comercial, migren a R ya que ahora empiezan a encontrar atención y soporte para los distintos problemas que se plantean en el día a día. Como ejemplos podemos citar a:
Revolution analytics: esta empresa ofrece una versión de R “con esteroides” que permite gestionar bases de datos más grandes, programación distribuída en diversos ordenadores, etc. Una pequeña historia de esta empresa aquí. Esta empresa fue adquirida por Microsoft en 2016 y ahora se denomina Microsoft-R.
Eoda: empresa radicada en Alemania especializada en la migración de SPSS o SAS a R; ofrece además servicios de consultoría, formación y desrrollo de software “a medida”
Asistiendo a cursos, presenciales u online. En la actualidad, numerosas plataformas de enseñanza online ofrecen cursos de R, o cursos de estadística que emplean R como herramienta para el análisis de datos:
Leyendo libros y documentación en internet:
¡SI!. R es software libre, y como tal, tanto el programa principal como las librerías disponibles pueden descargarse e instalarse sin coste económico. Los autores no cobran por el trabajo que supone desarrollar y mantener actualizado el programa. Es por ello que, cuando menos, si hemos utilizado R y algunas de sus librerías en los trabajos que publicamos debemos citarlo en las referencias. El comando citation()
proporciona la forma correcta de citar R, en modo de texto plano (para incluir en documentos Word o similares) o en formato .bib para incluir en documentos latex:
citation()
##
## To cite R in publications use:
##
## R Core Team (2018). R: A language and environment for
## statistical computing. R Foundation for Statistical Computing,
## Vienna, Austria. URL https://www.R-project.org/.
##
## A BibTeX entry for LaTeX users is
##
## @Manual{,
## title = {R: A Language and Environment for Statistical Computing},
## author = {{R Core Team}},
## organization = {R Foundation for Statistical Computing},
## address = {Vienna, Austria},
## year = {2018},
## url = {https://www.R-project.org/},
## }
##
## We have invested a lot of time and effort in creating R, please
## cite it when using it for data analysis. See also
## 'citation("pkgname")' for citing R packages.
Para citar una librería particular se usa citation("nombre-librería")
. Por ejemplo, para citar el paquete nlme
:
citation("nlme")
##
## Pinheiro J, Bates D, DebRoy S, Sarkar D, R Core Team (2018).
## _nlme: Linear and Nonlinear Mixed Effects Models_. R package
## version 3.1-137, <URL: https://CRAN.R-project.org/package=nlme>.
##
## A BibTeX entry for LaTeX users is
##
## @Manual{,
## title = {{nlme}: Linear and Nonlinear Mixed Effects Models},
## author = {Jose Pinheiro and Douglas Bates and Saikat DebRoy and Deepayan Sarkar and {R Core Team}},
## year = {2018},
## note = {R package version 3.1-137},
## url = {https://CRAN.R-project.org/package=nlme},
## }
R se actualiza un par de veces al año. En cualquier caso, en lo que suele ser más difícil estar al día no es tanto en la actualización del programa R en sí, sino en su ecosistema de librerías. La velocidad con que se construyen nuevas librerías en R es muy rápida y es muy difícil saber qué nuevas librerías hay, si resultan de nuestro interés, o incluso si se han producido mejoras importantes en librerías “antiguas”.
En realidad la única forma de estar al día es consultando con cierta periodicidad los sitios web en que se ofrecen noticias sobre R (como R-bloggers) o suscribirse a grupos de R en Google+, Facebook o Twitter. Un sitio interesante que conviene también visitar periódicamente para estar al día es awesome R. Es un sitio donde se señalan las novedades más importantes que se producen en el entorno R cada año y donde, de manera ordenada, se presentan los paquetes imprescindibles según el tipo de análisis que queramos realizar.
Recientemente se han puesto en marcha algunas plataformas web que permiten ejecutar R directamente on-line, sin necesidad de descargarse e instalar el programa. Estas opciones resultan útiles para la “programación social”, la compartición rápida de código entre colaboradores, o simplemente para ejecutar R desde una tablet o un teléfono móvil.
R-fiddle: dispone incluso de una app para Chrome, que facilita el acceso inmediato desde este navegador.
StatAce: tiene una orientación más profesional; dispone de planes de pago para alquilar recursos de diferente capacidad, escalables según nuestras necesidades.
Depende:
R y Matlab son lenguajes de programación multipropósito. El diseño de R es algo más moderno que el de Matlab, y la orientación a objetos le confiere ciertas ventajas. El uso de R a través de la interfaz que proporciona Rstudio no tiene nada que envidiar a la interfaz que ofrece Matlab.
Prácticamente cualquier programa que pueda implementarse en Matlab, puede implementarse también en R, con una sintaxis muy similar. En R for matlab users o en Matlab/R reference pueden encontrarse un listado de funciones en Matlab y su equivalente en R. Existe además una librería de R (la librería matlab
) que implementa en R funciones específicas de Matlab.
El problema principal para los usuarios habituales de Matlab es la disposición de toolboxes. R dispone, como hemos dicho, de numerosas librerías; algunas, incluso, son transposiciones de toolboxes de Matlab, como la librería Signal
, pero hay muchas otras que no tienen equivalente en R, en particular Simulink o la Optimization toolbox. Asimismo muchas compañías de hardware proporcionan interfaces en Matlab -y no en R- para la captura de datos en tiempo real.
El usuario habitual de Matlab dispone de mucho código generado a través del tiempo que puede reutilizar en nuevos proyectos -del mismo modo que el usuario habitual de R reutiliza el código que ha generado. El paso de Matlab a R puede exigir la reescritura de muchas piezas de código.
© 2016 Angelo Santana, Carmen N. Hernández, Departamento de Matemáticas ULPGC