Si trabajas en una compañía data driven o aplicas el Big Data para mejorar el desarrollo de tu negocio, sin duda el Lenguaje de programación R es una herramienta indispensable que necesitas manejar con soltura. Te explicamos en qué consiste y cuáles son sus aplicaciones.

¿Qué es R?

R es un lenguaje de programación diseñado para realizar análisis estadísticos y crear gráficos a partir de datos, proporcionando un amplio abanico de herramientas estadísticas (modelos lineales y no lineales, tests estadísticos, análisis de series temporales, algoritmos de clasificación y agrupamiento, etc..) y gráficas.

Algunas de las ventajas de R son:
  • Enorme potencial para el análisis de datos.
  • Es software libre.
  • Es multiplataforma.
  • Tiene la posibilidad de cargar diferentes bibliotecas/paquetes aumentando sus posibilidades.

El R es un lenguaje que se aplica en UNIX, Windows, MacOS, FreeBSD y Linux. No ofrece simplemente una serie de herramientas que se aplican con un objetivo específico en cada caso. Por el contrario, es un sistema planificado que resulta muy funcional en el abordaje global de un análisis de datos.

Además, este lenguaje se destaca entre otras opciones parecidas por ejecutar las instrucciones que se le solicitan directamente sin necesitar de una compilación previa. En consecuencia, te permite ejecutar las tareas ganando eficiencia y tiempo.

Uno de sus principales inconvenientes es su curva de aprendizaje (algo lenta) pero, en parte, solventada por las numerosas interfaces gráficas existentes y que permiten realizar las operaciones más frecuentes mediante una serie de menús. En este sentido cabe destacar una de ellas, el R Commander (Rcmdr).

Su desarrollo actual es responsabilidad del R Development Core Team. Forma parte de un proyecto colaborativo y abierto donde los usuarios pueden publicar paquetes que extienden su configuración básica (repositorio oficial de paquetes). Además, se puede descargar gratis a través del siguiente enlace: https://www.r-project.org/.

Características de R

Extensible

Los usuarios lo pueden extender definiendo sus propias funciones, aparte de las de las numerosas bibliotecas preconstruidas que tiene. La mayor parte de ellas están escritas en R, aunque para algoritmos computacionalmente exigentes es posible desarrollarlas en C, C++ o Fortran. Como es un proyecto colaborativo y abierto, los propios usuarios pueden publicar paquetes que extienden su configuración básica.

Funcional

Las funciones en R se pueden manipular igual que los vectores. Además puedes asignar las funciones a variablesalmacenarlas en listasdevolverlas como resultados de otras funciones o incluso pasarlas como argumentos de otras funciones.

Orientado a objetos

Además de funcional, es orientado a objetos, una mezcla de ambos paradigmas. En el segundo caso, R nos permite modelar conceptos del mundo real relevantes a nuestro problema, representándolos como clases y objetos que podemos hacer que interactúen entre sí.

Integrable

Ofrece múltiples posibilidades para atacar a datos almacenados en distintos tipos de bases de datos. También presenta múltiples bindings y paquetes que permiten a R interactuar con otros lenguajes (como Perl, Ruby o Python) e intercambiar objetos con ellos.

Gráficos avanzados

Existen librerías para R que permiten generar una extensa variedad de gráficos, desde la completísima ggplot2 hasta otras más simples pero también potentes como corrplot.

Diferentes interfaces gráficos

R se puede utilizar a través de línea de comandos, existen varios editores gráficos muy interesantes capaces de correr en Windows, Linux y MacOS. Desctacamos especialmente R Studio y R Commander.

Interpretado y no compilado

A diferencia de C, C++ ó Java, no tenemos que compilar nuestro código, sino que el intérprete de R lo ejecuta directamente. Lo curioso de esto es que, puesto que muchas de sus rutinas computacionalmente más exigentes están escritas en C ó C++, muchas veces sin que nos demos cuenta, se estará ejecutando código compilado en esos lenguajes.

Basado en memoria

mantiene todos los objetos que definimos en nuestro programa en la memoria de nuestra máquina. Por ello, es importante entender cómo gestiona la memoria, para poder optimizar nuestro código. Así evitamos, por ejemplo, copias innecesarias de objetos que pueden ralentizarlo y hacer llegar a un límite nuestra máquina.

Estos elementos hacen que el tratamiento de los datos y su almacenamiento sea altamente efectivo. Además, puedes usarlo tanto en la computación estadística como en la gráfica, gracias a la gran variedad de herramientas con las que cuenta.

R y otros lenguajes de programación

R se integra bien con otros lenguajes de programación como C, C++ o Fortran para tareas de análisis de datos computacionalmente intensivas (alto consumo de recursos como CPU y RAM). Además, puede integrarse con distintas bases de datos y existen bibliotecas que facilitan su utilización desde lenguajes de programación interpretados como Perl y Python.

Ecosistema de usuarios

Una de las mayores virtudes de R es su ecosistema de usuarios y desarrolladores. La comunidad de R se estima por encima de los dos millones de usuarios y, según una encuesta de KDnuggets.com, sigue siendo el lenguaje más popular cuando se trata de trabajar con Data Science, siendo usado por un 49% del total de encuestados, aunque Python le sigue de cerca tras experimentar un incremento de usuarios cercano al 51%.

Uso de R en Big Data

En el ámbito del Big Data se utiliza para la manipulación, procesamiento y visualización gráfica de los datos. R nos permite:

  • Establecer visualizaciones de datos de alta calidad. 
  • Crear dashboards para visualizar y analizar datos. 
  • Generar informes automáticos. 
  • Disponer de herramientas de análisis estadístico para ahondar en el conocimiento de los datos.

Empresas que usan R – Casos de uso

La primera alternativa gratuita a los gigantes del sector, como Matlab o SAS. Durante los últimos años ha derribado las barreras de los círculos más académicos para adentrarse en el mundo de las finanzas, de la mano de los traders de Wall Street, de biólogos, desarrolladores… Empresas como Google, Facebook y el New York Times han recurrido a este lenguaje para gestionar conjuntos de datos complejos, realizar funciones de modelado y crear gráficos para representar los resultados de una forma más accesible.

R está incrementando su uso para la creación de modelos financieros, pero sobre todo como herramienta de visualización.

Empresas que utilizan R
Twitter

Twitter es actualmente una dinámica e ingente fuente de contenidos que, dada su popularidad e impacto, se ha convertido en la principal fuente de información para estudios de Social Media Analytics.

En este caso, al utilizar el lenguaje R y todo su potencial, nos ayuda a sacar el máximo partido a cada tuit ya que cada vez existen más librerías relacionadas con Twitter que podemos utilizar para extraer y analizar los siguientes datos:

  • Datos de los textos generados: cada tweet creado nos da mucha información relevante: desde su origen en según qué plataformas hasta cuántas interacciones posee, aparte del propio texto.
  • Datos de los usuarios: entre los datos más relevantes de cada usuario, podemos sacar desde su propia autodescripción, su nivel de influencia (seguidores-seguidos), cómo de activo es, procedencia, etc.
Fuente
  • Análisis relevantes: Con todo lo recogido, podemos sacar información bastante útil para optimizar nuestro posicionamiento y el tipo de mensajes que mandamos en las redes sociales y podemos realizar:
    • Análisis de nuestros seguidores (cómo se autodefinen, a quién más siguen, su nivel de influencia, localización…)
    • Investigación sobre contenidos populares (palabras más repetidas, palabras asociadas a ciertos hashtags, contenido con más interacción…)
    • Análisis de sentimiento.
Microsoft

Microsoft ha presentado Microsoft R Server, su plataforma de analítica de datos empresarial, escalable y segura, basada en R, el lenguaje de programación para estadística y análisis.

El nuevo Microsoft R Server soporta una gran variedad de sistemas estadísticos de Big Data, modelización predictiva y capacidades de machine learning.