Microsoft m’a vraiment impressionné avec Power BI. Ils travaillent très dur pour l’améliorer en faisant des mises à jour hebdomadaires au service Power BI et des mises à jour mensuelles au bureau Power BI.
L’une des récentes mises à jour qui ont été faites au bureau Power BI est la version GA de la possibilité d’utiliser R comme source de données. Beaucoup ont recommandé d’utiliser cette option pour stocker vos données avant de les apporter dans Power BI via l’un des nombreux algorithmes de science des données disponibles dans R. C’est un très bon cas d’utilisation. Mais en plus de cela, je recommande de l’utiliser comme une alternative viable pour effectuer des tâches difficiles de manipulation de données que M n’est pas équipé pour gérer efficacement. Voici 4 situations où R peut être une meilleure option que M dans Power BI pour le wrangling de données :
1. Lorsque vous pouvez bénéficier de l’exploitation d’un paquet de wrangling de données sur CRAN
2. Lorsque vous avez besoin d’exploiter des expressions régulières
3. Lorsque vous voulez faire un tableau de dimension de date à la volée
4. Lorsque vous voulez enregistrer des informations sur vos chargements de données
Quand vous pouvez bénéficier de l’exploitation d’un paquet de wrangling de données sur CRAN
Nous savons déjà à quel point R est génial pour la science des données. Mais peu de gens savent qu’il est également idéal pour le type de traitement de données que l’on effectue pour préparer ses données pour Power BI. R est un langage plus mature que M et il a une plus grande communauté d’utilisateurs que M. De nombreux développeurs R brillants ont écrit des paquets qui ajoutent aux capacités de R.
Lorsqu’on fait référence à ce qui peut être fait dans iOS, Apple dit souvent qu’il y a une « application » pour cela. De même, lorsque les développeurs R font référence à ce qui peut être fait dans R, nous disons souvent qu’il existe un « package » pour cela. Par exemple :
– Si l’on a besoin de gratter des données sur le web, il existe des packages pour cela (rvest, httr, rcurl, et d’autres)
– Si l’on a besoin de faire des transformations compliquées à ses données, il existe des packages pour cela (dplyr, tidyr, lubrdiate, stringr, et d’autres)
– Si l’on a besoin d’extraire des données de sources de données SQL ou NoSQL, il existe des packages pour cela (RODBC, SparkR, RMongo, RHadoop, et d’autres).
– Si l’on a besoin de travailler avec des données XML ou JSON, il existe des packages pour cela également (XML, jsonlite, et autres).
Quand vous avez besoin de tirer parti des expressions régulières
Les données sont très précieuses. Certains les appellent le nouvel or. Comme l’or, vous devez les nettoyer ou les purifier afin de les rendre utilisables. Souvent, les méthodes que vous utilisez pour nettoyer vos données sont simples et des outils comme Power Query suffisent. Mais il arrive que vos données soient très sales ou qu’elles soient dans un format compliqué. Dans la plupart de ces cas, un code M personnalisé suffira. Mais il y a quelques cas où ce ne sera pas le cas.
Disons que vos données sont dans un format difficile à analyser car il n’y a pas un seul délimiteur que vous pouvez utiliser. Mais s’il existe un modèle clair qui peut être utilisé pour analyser vos données, alors vous pourriez bénéficier des expressions régulières. Malheureusement, les expressions régulières ne sont pas disponibles dans M mais elles le sont dans R.
Quand vous voulez créer un tableau de dimensionnement de date à la volée
Il existe plusieurs façons d’introduire un tableau de dimensionnement de date dans Power BI. Vous pouvez en apporter un à partir de votre entrepôt de données, vous pouvez en créer un à la volée à l’aide de Power Query et de M, et vous pouvez en créer un à la volée à l’aide de DAX.
Une façon moins connue consiste à utiliser R et à tirer parti du package « lubridate » créé par mon développeur de packages R préféré, Hadley Wickham. Voici le lien vers mon repo GitHub qui montre un exemple d’utilisation de R et du package lubridate pour créer un tableau de dimension de date.
Le package lubridate a beaucoup de fonctions de date faciles à utiliser et très indulgentes qui peuvent être utilisées pour créer des attributs de date pour votre tableau de dimension de date. Regardons la fonction « ymd » à titre d’exemple. Cette fonction renvoie la représentation de la date du texte qui lui est transmis et qui peut être interprétée comme un format année-mois-jour. Les exemples de code suivants renvoient tous la date du 11 août 2016 : ymd(20160811), ymd(« 2016 August 1 ») et ymd(160811). Incroyable ! C’est un moment où il faut lâcher le micro ! LOL. M n’est pas si facile et n’est pas si indulgent. Le paquet lubridate possède également des fonctions qui gèrent les fonctions d’année ISO, de semaine ISO et de jour ISO, de sorte qu’en utilisant R, vous pourriez facilement ajouter ces attributs de date à votre table de dimensionnement des dates. Cette fonctionnalité n’est pas nativement disponible dans M.
Notez que dans l’exemple de code que j’ai inclus dans le repo, j’ai pu utiliser le paquet « rvest » pour gratter un site Web pour les jours fériés fédéraux et ajouter cette information comme un attribut à ma table de dimension de date. Je peux probablement faire la même chose dans Power Query, mais il était plus intuitif pour moi de le faire dans R.