Power BI
Power BI es un recientemente nuevo servicio de Business Inteligence (BI) y análisis empresarial desarrollado por Microsoft. Esta herramienta, o conjunto de herramientas, se presenta como una solución integrada en Office 365 y permite la descarga de datos, o conexión a numerosas fuentes y orígenes de datos, la manipulación (limpieza y transformación), visualización y análisis de una forma bastante intuitiva, especialmente si tenemos conocimientos previos de Excel, tablas dinámicas, Power Pivot y Power Query. Power BI permite la creación de paneles e informes personalizados y dinámicos, y su posterior publicación. En definitiva, Power BI pretende con ello ser una herramienta que permita tener de forma sencilla una visión general del conjunto de la empresa mediante un análisis inteligente y una monitorización del funcionamiento conjunto del negocio ayudando con ello a tomar las mejores decisiones empresariales. Para el uso de Power BI existen diversas opciones: Microsoft Desktop, Pro y Premium. La primera de ellas es de uso gratuito, aunque presenta limitaciones de funcionalidad con respecto a las otras dos versiones, especialmente en la fase de publicación de paneles e informes y a la hora de compartir los resultados con otros usuarios. Por su parte, las versiones de pago requieren licencias, y evidentemente su mayor o menor utilidad dependerá de las necesidades de la empresa o del usuario.
Pero vayamos a lo que nos ocupa en este post. Resulta que, de una forma muy interesante desde mi punto de vista, Power BI ha posibilitado diversos cauces mediante los cuales resulta posible integrar las capacidades de esta nueva plataforma con el lenguaje de R (y también de Phyton). Además, estos cauces son varios, siendo posible hacer uso de un R script para visualizar datos, pero también para la importación de los mismos o para su transformación y manipulación. Por consiguiente, el objetivo de este post será mostrar, utilizando los datasets del paquete {gapminder}, cómo realizar operaciones utilizando R en Power BI. Los datasets escogidos, que personalmente me gustan mucho y los he utilizado en post previos (vease este y este) muestra, entre otros aspectos, la renta per cápita, la población y la esperanza de vida para 187 países en diversos años (1952-2007).
Antes de empezar es importante tener presente que para trabajar con R en Power BI es necesario tener instalado R en el mismo ordenador donde se tiene instalado Power BI Desktop. De hecho, antes de utilizar algún paquete de R en Power BI, resulta necesario tener ese paquete instalado previamente en R. En el menú de opciones de Power BI Desktop podemos encontrar las opciones de Script de R, donde veremos que automáticamente se habrá detectado el directorio de inicio de R y, en el caso de usar un IDE (acrónimo de integrated development environment), como es mi caso que uso R Studio, Power BI lo identificará también.
Una vez dicho esto veamos cómo podemos utilizar R en Power BI. Como he señalado, podemos utilizar R en diversas fases del proceso de análisis:
1. Importación de datos en Power BI Desktop
Para utilizar R en el proceso de importar datos en Power BI debemos, una vez abierta una sesión en Power Desktop, ir a la pestaña que indica Obtener datos situada en la barra superior y, posteriormente, seleccionar la opción Script de R.
A continuación se abrirá una ventana donde podemos insertar un Script de R. Nosotros, como hemos indicado previamente, vamos a trabajar con los datasets del paquete {gapminder}. Descargaremos, por tanto, los datasets gapminder
, gapminder_unfiltered
y country_codes
, utilizando el lenguaje tradicional de R. Recordemos que el paquete {gapminder} deberá estar previamente instalado en R.
Si todo ha ido bien debería abrirse una nueva ventana donde nos permita seleccionar las tres tablas. Podemos seleccionar alguna de ellas, o las tres a la vez y cargarlas. En el caso de requerir alguna modificación, o para su visualización, podríamos indicar Transformar datos y se abrirá el editor de Power Query que posiblemente nos resulte familiar si hemos trabajado previamente con Power Pivot en Excel.
Nosotros en esta ocasión indicamos Cargar, en la parte inferior de la pantalla, y las tres tablas se cargarán en nuestro Power BI Desktop. Los campos aparecerán en la parte derecha tal y como refleja la captura de pantalla siguiente, pudiendo observar fácilmente el nombre de las columnas que componen cada una de las tablas. Por su parte, en la parte izquierda de la pantalla encontraremos tres iconos. El superior, donde nos encontramos, sería la pantalla de Informe, y es el lugar donde desarrollaremos el análisis y prepararemos el informe y las respectivas visualizaciones, el siguiente icono abre la pantalla Datos, lugar donde podremos observar las tablas que conforman nuestro modelo y, por último, el tercer icono nos conduce a la pantalla Modelo, que es donde acudiremos para crear las relaciones entre las distintas tablas.
Si accedemos a la pantalla Modelo, podemos comprobar que Power BI ha realizado automáticamente algunas relaciones entre las tablas vinculando las tablas gapminder
y gapminder_unfiltered
con la tabla country_codes
usando como nexo de unión el nombre de los países (country
). Aunque en este caso particular las relaciones han sido identificadas automáticamente por Power BI, lo habitual será que seamos nosotros los que tengamos que identificar de forma manual las relaciones correspondientes entre las distintas tablas que conforman nuestro modelo.
Una vez importadas las tablas podemos trabajar con ellas. A modo de ejemplo rápido pongamos que queremos realizar un gráfico de barras donde se indique el PIB per cápita de los países incluidos en la tabla gapminder
pero utilizando como etiquetas para el eje los códigos iso (de la tabla country_codes
) para cada uno de los países en lugar del nombre del país. Esto implicará utilizar información de las dos tablas conjuntamente, algo que no supone un problema gracias a las relaciones realizadas automáticamente por Power BI. Utilizaremos además un filtro para poder seleccionar el año y clasificaremos los países por colores según el continente al que pertenecen. Estas operaciones se realizan de una forma muy sencilla en Power BI Desktop indicando las operaciones correspondientes en el menú y arrastrando los valores que queremos incluir en el informe.
2. Manipulación de datos en Power Query
En segundo lugar podemos utilizar el lenguaje de R para manipular y transformar los datos de las tablas con las que estamos trabajando. Si bien Power BI incluye en su plataforma de Power Query un gran número de posibilidades a la hora de realizar manipulaciones y transformaciones de las tablas, operaciones que además suelen poder realizarse de forma bastante intuitiva, cabe la posibilidad de que nos resulte conveniente o más sencillo realizar algunas (o todas) de esas operaciones utilizando el lenguaje R.
Para abrir el editor de Power Query vamos a la parte superior de la pantalla, y hacemos click en Editar consultas. Una vez se ha abierto el Editor de Power Query, y nos hemos situado en la tabla que queremos manipular, en la parte superior derecha de la pantalla veremos la opción Ejecutar script de R.
Al darle a Ejecutar script de R se abrirá una nueva ventana donde, al igual que hicimos previamente cuando importamos los datos, podemos escribir nuestro código de R. En nuestro caso vamos a utilizar el paquete {dplyr} para realizar las transformaciones deseadas. El paquete {dplyr}, como expusimos en este post antiguo, se compone de un conjunto de funciones que permiten manipular fácilmente los datasets. En nuestro caso particular, situados en la tabla gapminder_unfiltered
, calcularemos el PIB total de cada país multiplicando su PIB por habitante por su población, y seleccionaremos únicamente los valores correspondientes al año 2007 con el objetivo de presentar dicha información posteriormente en un mapa.
Vemos que las operaciones que vamos realizando, al igual que sucede cuando realizamos cualquier operación con las opciones que incluye Power BI, se van anotando en la parte derecha de la pantalla. Esto resulta de gran utilidad puesto que en cualquier momento podemos corregir las acciones y volver a un punto anterior del proceso de transformación del dataset. Una vez hemos terminado de realizar las operaciones pertinentes indicaremos Cerrar y aplicar para ir de nuevo a la pantalla de informe.
A modo de ejemplo realizamos un mapa del mundo donde el tamaño de cada burbuja represente el PIB total que hemos calculado en el paso anterior para cada economía. Para hacer más llamativo el mapa visualizaremos cada continente con un color diferente. Para realizar este mapa únicamente arrastramos los valores al apartado correspondiente tal y como se indica en la captura de pantalla siguiente.
Como hemos podido comprobar, Power BI resulta muy funcional a la hora de realizar visualizaciones puesto que pone a nuestra disposición un gran número de posibilidades al usuario para ello. Simplemente, por poner otro ejemplo, pongamos que nos interesa realizar un heat map con la misma información, es decir, indicando el PIB por país. En este caso vamos al icono del rodillo de pintura y activaríamos la opción de mapa térmico y algunas opciones de formato según nuestras preferencias.
Además de las posibilidades existentes en el menú de visualizaciones de la pantalla de Informe, Power BI pone a la disposición del usuario un Marketplace donde podemos descargar un gran número de objetos visuales. Es recomendable echar un vistazo a las posibilidades que ofrece el Marketplace, donde podemos encontrar herramientas que nos pueden ser treméndamente útiles para llevar a cabo análisis avanzados u otras que nos pueden resultar graciosas para otro tipo de análisis de carácter más informal como por ejemplo el Enlighten Aquarium.
Al darle a agregar el objeto visual se importará dentro de nuestro menú. Una vez allí podemos utilizarlo como cualquier otro objeto visual presente en el menú de visualizaciones. En nuestro caso indicaremos que cada país venga representado por un pez y que el tamaño de cada uno de ellos venga determinado por su PIB per cápita. Podemos asimismo añadir una Segmentación de datos al objeto visual que nos permita seleccionar el año que queremos representar en cada momento.
3. Visualización de datos en Power BI Desktop
En tercer lugar podemos realizar visualizaciones de R, por ejemplo utilizando el conocido paquete {ggplot2}, en los informes de Power BI Desktop. Para ello haremos click en el icono de R que se encuentra en el panel de visualizaciones en la pantalla de informes de Power BI Desktop. Una vez seleccionado dicho icono se abrirá un objeto visual de R como el que se observa en la siguiente captura de pantalla.
Posteriormente arrastraremos las variables que queremos incluir para su posterior visualización. En nuestro caso particular vamos a realizar un scatterplot donde se relacione el PIB per cápita con la esperanza de vida, donde el tamaño de las burbujas corresponderá al tamaño de cada país según su número de habitantes. Nuestro gráfico será similar al realizado en este post anterior, aunque en esta ocasión graficaremos únicamente dicha relación en el año 2007.
A la hora de escribir el script de R tenemos dos opciones. Por un lado podemos escribir el código en el Editor de script R, en la parte inferior de la pantalla, o por otro lado podemos Editar el script en IDE externo, y a continuación se abrirá una pantalla en el IDE correspondiente. En nuestro caso se abre un script en Rstudio, tal y como se observa en la siguiente captura de pantalla.
Al ejecutar el script generamos la misma visualización que obtendríamos en R. Recuérdese que los paquetes que carguemos deben estar instalados previamente en R.
Nota final
Como hemos podido comprobar a lo largo de este post, resulta sencillo poder integrar el lenguaje y las capacidades de R en esta nueva y potente herramienta de Microsoft. Compaginar R con Power BI nos proporciona un gran potencial a la hora de analizar y visualizar datos y nos abre las puertas a grandes posibilidades a explorar. Resulta, por tanto, muy conveniente dedicar tiempo a profundizar en las funcionalidades que ofrecen cada una de estas herramientas y en aprender los mecanismos mediante los cuales podemos trabajar conjuntamente con ambos con el objetivo de sacar el máximo provecho de ellas.
El informe realizado a lo largo de este post puede ser visualizado, compartido/publicado utilizando Power BI Server, aunque algunas posibilidades estarán restringidas a usuarios con licencia.