Analyse des réseaux sociaux à l'aide de Power BI et R : un guide de visuels personnalisés

Publié: 2022-07-22

L'analyse des réseaux sociaux devient rapidement un outil important pour répondre à une variété de besoins professionnels. Il peut éclairer les objectifs de l'entreprise tels que le marketing ciblé et identifier les risques de sécurité ou de réputation. L'analyse des réseaux sociaux peut également aider les entreprises à atteindre leurs objectifs internes : elle donne un aperçu des comportements des employés et des relations entre les différentes parties d'une entreprise.

Les organisations peuvent utiliser un certain nombre de solutions logicielles pour l'analyse des réseaux sociaux ; chacun a ses avantages et ses inconvénients et est adapté à des fins différentes. Cet article se concentre sur Power BI de Microsoft, l'un des outils de visualisation de données les plus couramment utilisés aujourd'hui. Bien que Power BI propose de nombreux modules complémentaires de réseau social, nous explorerons les visuels personnalisés dans R pour créer des résultats plus convaincants et flexibles.

Ce didacticiel suppose une compréhension de la théorie des graphes de base, en particulier des graphes orientés. En outre, les étapes ultérieures sont mieux adaptées à Power BI Desktop, qui n'est disponible que sous Windows. Les lecteurs peuvent utiliser le navigateur Power BI sous Mac OS ou Linux, mais le navigateur Power BI ne prend pas en charge certaines fonctionnalités, telles que l'importation d'un classeur Excel.

Structurer les données pour la visualisation

La création de réseaux sociaux commence par la collecte de données de connexions (edge). Les données de connexion contiennent deux champs principaux : le nœud source et le nœud cible , c'est-à-dire les nœuds situés à chaque extrémité de la périphérie. Au-delà de ces nœuds, nous pouvons collecter des données pour produire des informations visuelles plus complètes, généralement représentées sous forme de propriétés de nœud ou de périphérie :

1) Propriétés du nœud

  • Forme ou couleur : Indique le type d'utilisateur, par exemple, l'emplacement/le pays de l'utilisateur
  • Taille : Indique l'importance dans le réseau, par exemple, le nombre de followers de l'utilisateur
  • Image : Fonctionne comme un identifiant individuel, par exemple, l'avatar d'un utilisateur

2) Propriétés des bords

  • Couleur , trait ou flèche : Indique le type de connexion, par exemple, le sentiment de la publication ou du tweet reliant les deux utilisateurs
  • Largeur : Indique la force de la connexion, par exemple, combien de mentions ou de retweets sont observés entre deux utilisateurs sur une période donnée

Examinons un exemple de visuel de réseau social pour voir comment ces propriétés fonctionnent :

Un graphique de cercles reliés par des lignes de largeurs variables apparaît avec trois sections distinctes. La gauche du graphique comporte six formes vertes de différentes tailles étiquetées 1, 2, 3, 4, 5 et 6 dans un hexagone. Les nombres 1 à 5 sont des cercles, tandis que 6 est un diamant. Ils sont reliés entre eux par des flèches vertes de largeurs et de directions variables, et certaines pointes de flèches sont remplies de vert tandis que d'autres ne le sont pas. À droite des formes vertes se trouve la section suivante : trois formes bleu foncé disposées en triangle qui sont étiquetées 7, 8 et 9, et sont interconnectées par des flèches bleues de largeurs et de directions variables (avec quelques pointes de flèche remplies de bleu). Les nœuds 7 et 9 sont connectés aux nœuds 3 et 4 avec des flèches grises de largeurs et de directions variables (avec quelques pointes de flèches remplies de gris). Au milieu du graphique, sous les deux premiers groupes de formes, se trouve un seul losange bleu clair étiqueté 10. Il est relié aux nœuds 5, 4 et 9 par des flèches grises en pointillés de largeurs et de directions variables (avec quelques pointes de flèches remplies de gris) .
Les nœuds verts, bleu clair et bleu foncé et les différentes formes de cercle ou de losange illustrent différents types de nœuds. Les nombres avec des arrière-plans transparents agissent comme identifiants d'image de nœud, et les nœuds plus grands (tels que le nœud 4) sont plus importants dans le réseau. Différents types d'arêtes sont indiqués par la couleur (vert, bleu ou gris), le trait (plein ou pointillé) et les pointes de flèche (vides ou remplies) ; la largeur du bord indique la force (par exemple, la connexion du nœud 8 au nœud 9 est forte).

Nous pouvons également utiliser le texte de survol pour compléter ou remplacer les paramètres ci-dessus, car il peut prendre en charge d'autres informations qui ne peuvent pas être facilement exprimées via les propriétés de nœud ou de bord.

Comparaison des extensions de réseaux sociaux de Power BI

Après avoir défini les différentes fonctionnalités de données d'un réseau social, examinons les avantages et les inconvénients de quatre outils populaires utilisés pour visualiser les réseaux dans Power BI.

Extension Graphique des réseaux sociaux par Arthur Graus Navigateur réseau Réseaux avancés par ZoomCharts (édition légère) Visualisations personnalisées à l'aide de R
Taille de nœud dynamique Oui Oui Oui Oui
Taille de bord dynamique Non Oui Non Oui
Personnalisation de la couleur des nœuds Oui Oui Non Oui
Traitement complexe des réseaux sociaux Non Oui Oui Oui
Images de profil pour les nœuds Oui Non Non Oui
Zoom réglable Non Oui Oui Oui
Filtrage des N premières connexions Non Non Non Oui
Informations personnalisées au survol Non Non Non Oui
Personnalisation de la couleur des bords Non Non Non Oui
Autres fonctionnalités avancées Non Non Non Oui


Social Network Graph d'Arthur Graus, Network Navigator et Advanced Networks de ZoomCharts (Light Edition) sont toutes des extensions appropriées pour développer des réseaux sociaux simples et commencer votre première analyse de réseaux sociaux.

De nombreux cercles bleu foncé, bleu clair et orange (plus de 50 cercles) sont reliés par de fines lignes grises sur fond blanc. Les cercles ont une bordure de couleur unie et sont remplis de petites images de divers Pokémon qui ont un fond blanc, et les cercles bloquent la vue de la plupart des lignes grises. Ils forment une forme circulaire dans l'ensemble.
Un exemple de visualisation réalisée à l'aide de l'extension Social Network Graph d'Arthur Graus.

De nombreux cercles bleus, violets et gris (plus de 50 cercles) sont reliés par de fines lignes grises sur fond blanc. Les cercles sont pleins et pleins et bloquent la vue de certaines des lignes grises. Ils forment globalement un arrangement circulaire.
Un exemple de visualisation réalisée à l'aide de l'extension Network Navigator.

De nombreux grands cercles bleu sarcelle et petits oranges (plus de 50 cercles) sont reliés par de fines lignes grises sur fond blanc. Les cercles sont pleins et pleins, et la plupart des lignes grises sont visibles. Ils forment globalement une forme de coin horizontal, avec des cercles plus densément peuplés apparaissant sur le côté droit. En bas à gauche du graphique, il y a quelques icônes de widgets et deux cercles étiquetés : un cercle bleu sarcelle étiqueté "De l'utilisateur" et un cercle orange étiqueté "À l'utilisateur". En bas à droite du graphique se trouve un logo indiquant "zoomcharts".
Un exemple de visualisation réalisée à l'aide de l'extension Advanced Networks by ZoomCharts (Light Edition).

Cependant, si vous souhaitez donner vie à vos données et découvrir des informations révolutionnaires avec des visuels accrocheurs, ou si votre réseau social est particulièrement complexe, je vous recommande de développer vos visuels personnalisés dans R.

De nombreux cercles verts, bleus et violets (plus de 50 cercles) sont reliés par de fines lignes de différentes couleurs (vert, gris et rouge) sur un fond blanc. Les cercles sont solides et remplis d'une image Pokemon en leur centre, et la plupart des lignes fines sont visibles. Ils forment une forme circulaire étalée dans l'ensemble, les cercles verts se ramifiant fréquemment vers des cercles bleus ou violets plus petits. Le coin supérieur droit du graphique contient le texte "Réseau social", et sous le graphique se trouve une légende de lignes et de cercles avec le texte associé : une ligne verte avec le texte "Positif", une ligne grise avec le texte "Neutre", une ligne rouge avec le texte "Négatif", un cercle bleu avec le texte "Mention" et un cercle violet avec le texte "Retweet".
Un exemple de visualisation réalisée à l'aide de visuels personnalisés dans R.

Cette visualisation personnalisée est le résultat final de l'extension de réseau social de notre didacticiel dans R et démontre la grande variété de fonctionnalités et de propriétés de nœud/bord offertes par R.

Construire une extension de réseau social pour Power BI à l'aide de R

La création d'une extension pour visualiser les réseaux sociaux dans Power BI à l'aide de R comprend cinq étapes distinctes. Mais avant de pouvoir créer notre extension de réseau social, nous devons charger nos données dans Power BI.

Prérequis : collecter et préparer des données pour Power BI

Vous pouvez suivre ce didacticiel avec un ensemble de données de test basé sur les données Twitter et Facebook ou continuer avec votre propre réseau social. Nos données ont été randomisées ; vous pouvez télécharger de vraies données Twitter si vous le souhaitez. Après avoir collecté les données requises, ajoutez-les dans Power BI (par exemple, en important un classeur Excel ou en ajoutant des données manuellement). Votre résultat devrait ressembler au tableau suivant :

Un tableau avec treize rangées grises et blanches alternées apparaît. Il a un titre --- "Réseau social" --- avec des en-têtes en dessous. La première colonne est étiquetée "De l'utilisateur" et comporte huit textes "1" suivis de cinq textes "2". La deuxième colonne est intitulée « À l'utilisateur » et lit (de haut en bas) : 2, 3, 5, 6, 7, 8, 9, 10, 7, 8, 11, 13, 14. La troisième colonne est intitulée « Nombre de connexions" et indique (de haut en bas) : 12, 46, 29, 79, 49, 11, 90, 100, 66, 29, 62, 13, 45. La quatrième colonne est intitulée "Type" et indique ( de haut en bas) : Retweeter, Mentionner, Mentionner, Retweeter, Retweeter, Retweeter, Mentionner, Mentionner, Retweeter, Retweeter, Retweeter, Retweeter, Mentionner. La cinquième colonne est intitulée "Sentiment" et se lit (de haut en bas) : Positif, Positif, Négatif, Neutre, Positif, Négatif, Positif, Neutre, Neutre, Négatif, Négatif, Négatif, Négatif. La sixième colonne est intitulée "Depuis le nom d'utilisateur" et contient huit textes "Aaliyah" suivis de cinq textes "Aaron". La septième colonne indique "To User Name" et lit (de haut en bas) : Aaron, Abel, Abraham, Ace, Adalyn, Adalynn avec deux N, Adam, Addison, Adalyn, Adalynn avec deux N, Adeline, Adriel, Aidan. La huitième colonne indique « From Avatar » et contient huit textes « https://raychemmedica.com/SampleImages/Pokemon/1.png » suivis de cinq textes « https://raychemmedica.com/SampleImages/Pokemon/2.png ». . La neuvième colonne indique "To Avatar" et chaque entrée contient le texte "https://raychemmedica.com/SampleImages/Pok" et semble être coupée.

Une fois vos données configurées, vous êtes prêt à créer une visualisation personnalisée.

Étape 1 : Configurer le modèle de visualisation

Développer une visualisation Power BI n'est pas simple, même les visuels de base nécessitent des milliers de fichiers. Heureusement, Microsoft propose une bibliothèque appelée pbiviz , qui fournit les fichiers nécessaires à la prise en charge de l'infrastructure avec seulement quelques lignes de code. La bibliothèque pbiviz reconditionnera également tous nos fichiers finaux dans un fichier .pbiviz que nous pourrons charger directement dans Power BI en tant que visualisation.

La façon la plus simple d'installer pbiviz est avec Node.js. Une fois pbiviz installé, nous devons initialiser notre visuel R personnalisé via l'interface de ligne de commande de notre machine :

 pbiviz new toptalSocialNetworkByBharatGarg -t rhtml cd toptalSocialNetworkByBharatGarg npm install pbiviz package

N'oubliez pas de remplacer toptalSocialNetworkByBharatGarg par le nom souhaité pour votre visualisation. -t rhtml informe le package pbiviz qu'il doit créer un modèle pour développer des visualisations HTML basées sur R. Vous verrez des erreurs car nous n'avons pas encore spécifié de champs tels que le nom et l'e-mail de l'auteur dans notre package, mais nous les résoudrons plus tard dans le didacticiel. Si le script pbiviz ne s'exécute pas du tout dans PowerShell, vous devrez peut-être d'abord autoriser les scripts avec Set-ExecutionPolicy RemoteSigned .

Une fois le code exécuté avec succès, vous verrez un dossier avec la structure suivante :

Une liste de l'Explorateur de fichiers contenant huit sous-dossiers (.tmp, .vscode, assets, dist, node_modules, r_files, src et style) et huit fichiers (capabilities.json, dependencies.json, package.json, package-lock.json, pbiviz .json, script.r, tsconfig.json et tslint.json). Tous les fichiers font 1 Ko, à l'exception deabilities.json (2 Ko) et package-lock.json (23 Ko).

Une fois que nous avons la structure de dossiers prête, nous pouvons écrire le code R pour notre visualisation personnalisée.

Étape 2 : Coder la visualisation en R

Le répertoire créé à la première étape contient un fichier nommé script.r , composé du code par défaut. (Le code par défaut crée une extension Power BI simple, qui utilise l'exemple de base de données iris disponible dans R pour tracer un histogramme de Petal.Length par Petal.Species .) Nous mettrons à jour le code mais conserverons sa structure par défaut, y compris ses sections commentées.

Notre projet utilise trois librairies R :

  • DiagrammeR : Crée des graphiques à partir de texte
  • visNetwork : Fournit des visualisations de réseau interactives
  • data.table : aide à l'organisation des données, similaire à data.frame

Remplaçons le code dans la section Library Declarations de script.r pour refléter notre utilisation de la bibliothèque :

 libraryRequireInstall("DiagrammeR") libraryRequireInstall("visNetwork") libraryRequireInstall("data.table")

Ensuite, nous remplacerons le code dans la section Actual code par notre code R. Avant de créer notre visualisation, nous devons d'abord lire et traiter nos données. Nous prendrons deux entrées de Power BI :

  • num_records : L'entrée numérique N , telle que nous ne sélectionnerons que les N meilleures connexions de notre réseau (pour limiter le nombre de connexions affichées)
  • jeu de dataset : nos nœuds et bords de réseaux sociaux

Pour calculer les N connexions que nous allons tracer, nous devons agréger la valeur num_records car Power BI fournira un vecteur par défaut au lieu d'une seule valeur numérique. Une fonction d'agrégation comme max atteint cet objectif :

 limit_connection <- max(num_records)

Nous allons maintenant lire l'ensemble de dataset comme un objet data.table avec des colonnes personnalisées. Nous trions l'ensemble de données par valeur dans l'ordre décroissant pour placer les connexions les plus fréquentes en haut du tableau. Cela garantit que nous choisissons les enregistrements les plus importants à tracer lorsque nous limitons nos connexions avec num_records :

 dataset <- data.table(from = dataset[[1]] ,to = dataset[[2]] ,value = dataset[[3]] ,col_sentiment = dataset[[4]] ,col_type = dataset[[5]] ,from_name = dataset[[6]] ,to_name = dataset[[7]] ,from_avatar = dataset[[8]] ,to_avatar = dataset[[9]])[ order(-value)][ seq(1, min(nrow(dataset), limit_connection))]

Ensuite, nous devons préparer nos informations utilisateur en créant et en attribuant des ID utilisateur uniques ( uid ) à chaque utilisateur, en les stockant dans une nouvelle table. Nous calculons également le nombre total d'utilisateurs et stockons ces informations dans une variable distincte appelée num_nodes :

 user_ids <- data.table(id = unique(c(dataset$from, dataset$to)))[, uid := 1:.N] num_nodes <- nrow(user_ids)

Mettons à jour nos informations utilisateur avec des propriétés supplémentaires, notamment :

  • Le nombre d'abonnés (taille du nœud).
  • Le nombre d'enregistrements.
  • Le type d'utilisateur (codes couleurs).
  • Liens d'avatars.

Nous utiliserons la fonction de merge de R pour mettre à jour la table :

 user_ids <- merge(user_ids, dataset[, .(num_follower = uniqueN(to)), from], by.x = 'id', by.y = 'from', all.x = T)[is.na(num_follower), num_follower := 0][, size := num_follower][num_follower > 0, size := size + 50][, size := size + 10] user_ids <- merge(user_ids, dataset[, .(sum_val = sum(value)), .(to, col_type)][order(-sum_val)][, id := 1:.N, to][id == 1, .(to, col_type)], by.x = 'id', by.y = 'to', all.x = T) user_ids[id %in% dataset$from, col_type := '#42f548'] user_ids <- merge(user_ids, unique(rbind(dataset[, .('id' = from, 'Name' = from_name, 'avatar' = from_avatar)], dataset[, .('id' = to, 'Name' = to_name, 'avatar' = to_avatar)])), by = 'id')

Nous ajoutons également notre uid créé à l'ensemble de données d'origine afin de pouvoir récupérer les ID utilisateur from et to plus tard dans le code :

 dataset <- merge(dataset, user_ids[, .(id, uid)], by.x = "from", by.y = "id") dataset <- merge(dataset, user_ids[, .(id, uid_retweet = uid)], by.x = "to", by.y = "id") user_ids <- user_ids[order(uid)]

Ensuite, nous créons des trames de données de nœuds et de bords pour la visualisation. Nous choisissons le style et la shape de nos nœuds (cercles pleins) et sélectionnons les bonnes colonnes de notre table user_ids pour remplir les attributs color , data , value et image de nos nœuds :

 nodes <- create_node_df(n = num_nodes, type = "lower",, color = user_ids$col_type, shape = 'circularImage', data = user_ids$uid, value = user_ids$size, image = user_ids$avatar, title = paste0("<p>Name: <b>", user_ids$Name,"</b><br>", "Super UID <b>", user_ids$id, "</b><br>", "# followers <b>", user_ids$num_follower, "</b><br>", "</p>") )

De même, nous sélectionnons les colonnes de la table de l'ensemble de dataset qui correspondent aux attributs from , to et color de nos bords :

 edges <- create_edge_df(from = dataset$uid, to = dataset$uid_retweet, arrows = "to", color = dataset$col_sentiment)

Enfin, avec les cadres de données de nœud et de bord prêts, créons notre visualisation à l'aide de la bibliothèque visNetwork et stockons-la dans une variable que le code par défaut utilisera plus tard, appelée p :

 p <- visNetwork(nodes, edges) %>% visOptions(highlightNearest = list(enabled = TRUE, degree = 1, hover = T)) %>% visPhysics(stabilization = list(enabled = FALSE, iterations = 10), adaptiveTimestep = TRUE, barnesHut = list(avoidOverlap = 0.2, damping = 0.15, gravitationalConstant = -5000))

Ici, nous personnalisons quelques configurations de visualisation de réseau dans visOptions et visPhysics. N'hésitez pas à parcourir les pages de documentation et à mettre à jour ces options comme vous le souhaitez. Notre section Actual code est maintenant terminée et nous devons mettre à jour la section Create and save widget en supprimant la ligne p = ggplotly(g); puisque nous avons codé notre propre variable de visualisation, p .

Étape 3 : Préparer la visualisation pour Power BI

Maintenant que nous avons terminé le codage en R, nous devons apporter certaines modifications à nos fichiers JSON de support pour préparer la visualisation à utiliser dans Power BI.

Commençons par le capabilities.json . Il comprend la plupart des informations que vous voyez dans l'onglet Visualisations d'un visuel, telles que les sources de données de notre extension et d'autres paramètres. Tout d'abord, nous devons mettre à jour dataRoles et remplacer la valeur existante par de nouveaux rôles de données pour nos entrées dataset et num_records :

 # ... "dataRoles": [ { "displayName": "dataset", "description": "Connection Details - From, To, # of Connections, Sentiment Color, To Node Type Color", "kind": "GroupingOrMeasure", "name": "dataset" }, { "displayName": "num_records", "description": "number of records to keep", "kind": "Measure", "name": "num_records" } ], # ...

Dans notre fichier dataViewMappings capabilities.json Nous allons ajouter des conditions auxquelles nos entrées doivent adhérer, ainsi que mettre à jour le scriptResult pour qu'il corresponde à nos nouveaux rôles de données et à leurs conditions. Consultez la section conditions , ainsi que la section select sous scriptResult , pour les modifications :

 # ... "dataViewMappings": [ { "conditions": [ { "dataset": { "max": 20 }, "num_records": { "max": 1 } } ], "scriptResult": { "dataInput": { "table": { "rows": { "select": [ { "for": { "in": "dataset" } }, { "for": { "in": "num_records" } } ], "dataReductionAlgorithm": { "top": {} } } } }, # ...

Passons à notre fichier dependencies.json . Ici, nous allons ajouter trois packages supplémentaires sous cranPackages afin que Power BI puisse identifier et installer les bibliothèques requises :

 { "name": "data.table", "displayName": "data.table", "url": "https://cran.r-project.org/web/packages/data.table/index.html" }, { "name": "DiagrammeR", "displayName": "DiagrammeR", "url": "https://cran.r-project.org/web/packages/DiagrammeR/index.html" }, { "name": "visNetwork", "displayName": "visNetwork", "url": "https://cran.r-project.org/web/packages/visNetwork/index.html" },

Remarque : Power BI devrait installer automatiquement ces bibliothèques, mais si vous rencontrez des erreurs de bibliothèque, essayez d'exécuter la commande suivante :

 install.packages(c("DiagrammeR", "htmlwidgets", "visNetwork", "data.table", "xml2"))

Enfin, ajoutons des informations pertinentes pour notre visuel au fichier pbiviz.json . Je vous recommande de mettre à jour les champs suivants :

  • Le champ de description du visuel
  • L'URL de support du visuel
  • L'URL GitHub du visuel
  • Le nom de l'auteur
  • Le mail de l'auteur

Maintenant, nos fichiers ont été mis à jour et nous devons reconditionner la visualisation depuis la ligne de commande :

 pbiviz package

En cas d'exécution réussie du code, un fichier .pbiviz doit être créé dans le répertoire dist . L'intégralité du code couvert dans ce didacticiel peut être consulté sur GitHub.

Étape 4 : Importer la visualisation dans Power BI

Pour importer votre nouvelle visualisation dans Power BI, ouvrez votre rapport Power BI (un pour les données existantes ou un créé lors de notre étape Prérequis avec des données de test) et accédez à l'onglet Visualisations . Cliquez sur le bouton [plus d'options] et sélectionnez Importer un visuel à partir d'un fichier . Remarque : Vous devrez peut-être d'abord sélectionner Modifier dans un navigateur pour que l'onglet Visualisations soit visible.

Un volet apparaît avec le titre "Visualisations" et deux flèches ">" à sa droite. Ci-dessous, le texte "Build visual" avec deux images en dessous : deux rectangles jaunes et une ligne à gauche, et un papier et un pinceau à droite. L'image des deux rectangles jaunes est sélectionnée et en dessous se trouve un panneau de plus de 30 icônes graphiques différentes. La dernière icône est une ellipse, avec le texte de survol "Obtenez plus de visuels". Sous le panneau d'icônes, le texte "Valeurs" avec une ligne de texte en dessous indiquant : "Ajouter des champs de données ici". En dessous, le texte "Drill through", suivi de "Cross-report" avec un bouton radio "Off" sélectionné à côté.

Accédez au répertoire dist de votre dossier de visualisation et sélectionnez le fichier .pbiviz pour charger en toute transparence votre visuel dans Power BI.

Étape 5 : Créer la visualisation dans Power BI

La visualisation que vous avez importée est désormais disponible dans le volet des visualisations. Cliquez sur l'icône de visualisation pour l'ajouter à votre rapport, puis ajoutez les colonnes pertinentes aux entrées dataset et num_records :

Un volet apparaît avec une icône d'outils sélectionnés contenant le texte de survol "toptalSocialNetworkByBharatGarg". Sous l'icône, le texte "ensemble de données" apparaît avec divers rectangles déroulants en dessous (de haut en bas) : De l'utilisateur, À l'utilisateur, Nombre de connexions, couleur, couleur, Nom d'utilisateur, Nom d'utilisateur, Avatar, Avatar.

Vous pouvez ajouter du texte, des filtres et des fonctionnalités supplémentaires à votre visualisation en fonction des exigences de votre projet. Je vous recommande également de parcourir la documentation détaillée des trois bibliothèques R que nous avons utilisées pour améliorer encore vos visualisations, car notre exemple de projet ne peut pas couvrir tous les cas d'utilisation des fonctions disponibles.

Mise à niveau de votre prochaine analyse de réseau social

Notre résultat final témoigne de la puissance et de l'efficacité de R lorsqu'il s'agit de créer des visualisations Power BI personnalisées. Essayez l'analyse des réseaux sociaux à l'aide de visuels personnalisés dans R sur votre prochain ensemble de données et prenez des décisions plus intelligentes grâce à des informations complètes sur les données.

Le blog Toptal Engineering exprime sa gratitude à Leandro Roser pour avoir examiné les exemples de code présentés dans cet article.

De haut en bas, les mots "Gold" (or coloré), "Microsoft" et "Partner" (tous deux en noir) apparaissent suivis du logo Microsoft.
En tant que Microsoft Gold Partner, Toptal est votre réseau d'élite d'experts Microsoft. Constituez des équipes performantes avec les experts dont vous avez besoin, où que vous soyez et exactement quand vous en avez besoin !