Header Posts

Pasos y Tips para Integrar R y Tableau

Este artículo está enfocado en la forma de implementar R y Tableau desde la parte técnica, además de mostrar una forma sencilla de aprender y algunos tips útiles para quien se inicia en este mundo.

Primero, en la página oficial de Tableau esta publicado el siguiente video en Español o Ingles, https://www.tableau.com/es-es/learn/tutorials/on-demand/r-integration, recomiendo primero verlo completo, ya que en 10 minutos comprenderá gran parte del funcionamiento integrado de ambos Software, además, es buena idea descargar el libro de trabajo (desde la parte inferior de la misma página). También recomiendo el siguiente video para observar como configurar ambos Software.

Requerimientos

  • Conexión a internet
  • Conocimientos medios de Tableau y R
  • Tener ambos Programas instalados

Configurando R y Tableau

Bueno, para empezar nuestra integración, lo primero es instalar R y Tableau, yo por mi parte, luego de instalar R, instalé R Studio (una interfaz más amigable y con más funcionalidades), instalé los paquetes necesarios, tal cual se ve en los videos, luego de instalar Rserve, lo ejecuté (es decir, ejecuté los dos siguientes comandos, library(Rserve), Rserve() ), lastimosamente, es necesario correr ese código siempre que se quiera usar un archivo de Tableau que use R.

Posteriormente, como la forma más sencilla de aprender es viendo como otros lo hicieron, descargué el libro de trabajo del tutorial y configuré R con el servicio de Rserve().

Probablemente le toque hacer esto mas de una vez cuando abra un archivo de Tableau con script de R, algo un poco agotador pero que no toma mucho tiempo. La forma de configurarlo localmente es : Menú ayuda>configuración de rendimiento>Administrara conexión del servicio externo, y posteriormente elegir localhost, probar la conexión y aceptar.

RandTableau1

RandTableau2

Integrando R y Tableau

Ahora, Tableau está conectado con R Server y los cálculos que se realizaban en las hojas de trabajo del libro que se descarga de la página de Tableau, ya se están ejecutando (la mayoría, en mi caso no pude instalar algunas librerías de R), como lo muestran los tutoriales, usted descubrirá que la forma en la que se empieza a trabajar con R seria la siguiente:

  1. Se crea una vista, con los niveles de agregación requeridos (puede ser en detalle).
  2. Se crea un campo calculado, para ello se utilizan las funciones (SCRIPT_BOOL, _INT,_REAL,_STR), el campo calculado es un cálculo de tabla, el cual se lleva a la hoja que se realizó en el primer paso.
  3. Se edita el cálculo de tabla para decirle que se calcule teniendo en cuenta las dimensiones necesarias.

Hay que tener en cuenta que cada uno de estos pasos es flexible y tienen algunos trucos, por lo cual, entendiendo como funciona la conexión de Tableau con R, se puede trabajar mejor. Ahora que entendemos cómo funciona R y Tableau haremos un ejemplo, en el siguiente campo calculado, se escribió la función SCRIPT_REAL, lo cual significa que lo que R me va a devolver, va a ser un dato de tipo Real, luego está el código que voy a enviar a R para que ejecute (escrito entre comillas), en este código están también los argumentos que voy a enviar desde Tableau, por ejemplo, en el siguiente caso, enviaré dos medidas agregadas, .arg1 que es ATTR([Pais 1 Ganancia por ciudad]) y .arg2 que sería ATTR([Pais 2 Ganancia por ciudad]).

RandTableau3

En definitiva, hay muchas formas de enviarle información a R, pero siempre tiene que ser una medida agregada, y adicionalmente, debe tenerse mucho cuidado con el nivel de marcas que estamos poniendo en la vista, para enviar la información correcta, y acá está el primer truco, siempre se debe tener el nivel de marcas necesarias en la vista para que se realice el cálculo correctamente. Pero acá surge un problema, ¿qué pasa si quiero mostrar solamente un valor? Por ejemplo, en el ejercicio que acabamos de hacer, un test T de diferencia de medias (una de las primeras cosas que cualquier usuario de R aprende a hacer) obtuvimos un p-valor, pero Tableau, por defecto, entiende que se devolvió este valor para todas las filas agregadas (marcas) que enviamos a R, como se observa a continuación, cada 0,000009, representaría una ciudad.

RandTableau4

La solución podrá ser sencilla para algunos, es utilizar un rank o índice, y elegir solo 1, luego de personalizar todo y en nuestro caso, poder elegir el país mediante un parámetro, se dejaría un resultado más ameno, como el siguiente:

RandTableau5

Así, se logra obtener un p-valor de acuerdo a la información suministrada a R por Tableau, observe que para que sea interactivo, se crearon varios parámetros para que el usuario final pudiera cambiar los países y ciudades con los que se realizaba la prueba.

En todo lo anterior, es necesario tener un conocimiento medio de ambos softwares, por varias razones, en el caso de Tableau, es necesario saber que es una medida agregada, como funciona un cálculo de tabla y como utilizar un parámetro. En el caso de R, es necesario saber los tipos de datos que existen y como llamar diferentes valores de una función.

En este ejercicio integrando ambos Softwares, el resultado fue un Dashboard interactivo, en donde se eligen dos países y se realiza una prueba T de diferencia de medias entre las ciudades de estos dos países, en este caso, 34 ciudades Argentinas vs 106 ciudades Mexicanas, ahora puede dejar todo listo para que un usuario que no conoce R realice una prueba estadística fiable, dando así conclusiones más certeras acerca de la información que se tiene.

RandTableau6

Tips Adicionales

  1. A pesar de utilizar expresiones LOD, como FIXED, es necesario llevar ciertas dimensiones a detalle para obtener el tipo de marcas requerido que se desea enviar a R.
  2. Siempre se requerirá una medida agregada, en el cálculo que se envíe a R.
  3. Si entiende el uso correcto de los parámetros, estos se volverán su mejor herramienta para que sus trabajos en R sean dinámicos, permitiéndole al usuario final interactuar con la información, desde mi punto de vista, acá es donde la integración toma valor.
  4. Para utilizar parámetros como argumentos dentro del script de R debe escribirlos como .arg4[1] (en este caso el parámetro sería el cuarto argumento si fuera el tercer argumento .arg3[1]).
  5. Para utilizar ciertas funciones en el script que se envía al R Serve, es necesario instalar el paquete al que estas pertenecen desde R o R Studio, algo un poco abrumador pero que se deberá realizar solamente una vez.
  6. Finalmente, También se puede integrar a nivel de Servidor, se debe configurar Tableau Server para que ejecute los scrpits de R en el R server que se está ejecutando desde el Servidor, el resultado es bastante satisfactorio, pues ahora tendrá el poder de realizar cálculos estadísticos en tiempo real y poderlos visualizar desde cualquier parte con Tableau Server.

Si deseas descargar el libro de trabajo, llena la siguiente forma

Por favor, activa JavaScript en tu navegador para completar este formulario.
Acepto ser contactado por Modux



Descargue Tableau Gratis

Por favor, activa JavaScript en tu navegador para completar este formulario.

Contáctenos

Por favor, activa JavaScript en tu navegador para completar este formulario.
Acepto ser contactado por Modux y la política de protección y uso de datos

Descargue Tableau

Por favor, activa JavaScript en tu navegador para completar este formulario.
Acepto ser contactado por Modux y la política de protección y uso de datos *