Nebulova Blog

Data Analytics

Visualización interactiva con R Shiny App

R Shiny App es un paquete de R destinado al desarrollo de aplicaciones interactivas de visualización de datos. Permite la instalación de una aplicación web corriendo en R en un servidor, y que podremos personalizar de forma sencilla con sintaxis HTML, CSS o Javascript.

Instalación de R Shiny App

En esta publicación damos por hecho que tenemos R instalado. Si este no es tu caso, te recomendamos que eches un vistazo a nuestra publicación Bienvenida a R Studio. El primer paso será abrir R Studio e instalar R Shiny con el siguiente comando en la terminal:

install.packages("shiny")

R descargará la última versión de R Shiny y la instalará. Al acabar el proceso deberíamos ver en pantalla:

"package ‘shiny’ successfully unpacked and MD5 sums checked"

Para comprobar que Shiny se ha instalado correctamente, escribimos en la terminal de R y ejecutamos:

library(shiny)

Esto debería ejecutarse sin ningún error. Puede ser que dependiendo de nuestra versión de R, nos advierta de que la versión de R Shiny ha sido escrita en una versión de R superior, pero esto no debería causar ningún problema, sólo es un warning que nos devolverá la terminal de R.

Estructura de una R Shiny App

Toda aplicación R Shiny App se ejecuta en un ordenador (al que llamamos “servidor”) con R instalado. La estructura de cualquier aplicación se divide en dos funciones principales:

  • UI
  • Server

La función UI se encarga de crear la interfaz visual de nuestra aplicación. Un ejemplo sería la función fluidPage():

ui <- fluidPage()

Por último, una función ejecuta tanto _ui_ como server, y nos muestra el resultado.

shinyApp(ui, server)

Podemos esquematizar el comportamiento de la aplicación tal y como vemos en el siguiente diagrama:

R Shinny App

Primera aplicación Shiny

Vamos a ver un ejemplo de una sencilla aplicación Shiny. Creamos un archivo llamado shiny.R y empezamos a crear nuestras tres funciones:

  1. ui
  2. server
  3. shinyApp

ui

Nuestra función ui quedaría de la siguiente forma:

En la variable ui no tenemos más que código HTML, cómo podemos ver si escribimos ui en la terminal de R.

R Shinny UI

Este código HTML será la plantilla que use nuestra aplicación junto con la función server para renderizar la visualización en tiempo real.

Server

La función server debe crear y mantener actualizado un histograma. Por ello, debemos darle los datos a incluir en el gráfico, crear el histograma y todo ello, dárselo a la función server como output.

ShiniApp

Por último introducimos a la función shiniApp las variables ui y server. El código entero, quedaría tal y como sigue. Atención a importar la librería shiny al principio del script.

Si todo ha ido bien, deberíamos ver en RStudio la visualización en la pestaña viewer.

R Studio R Shiny

Si queremos ver nuestro dashboard en el navegador web, debemos pulsar en el botón show in new window.

Próximos pasos a tomar

Más adelante veremos aplicaciones más avanzadas de R Shiny, dónde además limpiaremos y analizaremos los datos, enfocándonos en casos de uso reales.

Si te quieres dominar la visualización en R Shiny, en Nebulova tenemos un curso avanzado dónde aprenderás todo necesario para poder crear desde cero aplicaciones alojadas en servidor listas para el cliente final.