# *Bulletin de la Dialyse à Domicile*

## Réaliser des tableaux de bords avec le logiciel R

Claire Della Vedova

1087 chemin de Sainte Roustagne, 04100 MANOSQUE, France

### Résumé

NDLR : Le RDPLF a pour but principal d'être une aide pour permettre aux équipes de dialyse à domicile d'évaluer leurs pratiques cliniques et également conduire des études à partir d'exports anonymisés des données qu'elles saisissent. A cette fin, depuis juin 2019, un article de formation à l'utilisation du logiciel Libre R a été publié trimestriellement à chaque parution du Bulletin de la Dialyse à Domicile. Le but était de permettre à toutes les équipes de réaliser des statistiques de base et visualiser rapidement leurs données.

Le premier article de cette série d'initiation était consacré au téléchargement et à l'installation du logiciel R sur les ordinateurs Macintosh et PC : https://doi.org/10.25796/bdd.v2i2.20513.

Le second était consacré à la visualisation graphique des données statistiques avec le package Esquisse, simple d'utilisation et nécessitant peu d'apprentissage : https://doi.org/10.25796/bdd.v2i3.21313.

Le troisième article était consacré à la visualisation graphique avec le Package ggplot2 : https://doi.org/10.25796/bdd.v2i4.52303.

Le quatrième article expliquait comment générer un rapport d'analyse automatiquement, et de façon dynamique, en utilisant "R markdown".

Le cinquième article était consacré à la manipulation des données avec le package dplyr : https://doi.org/10.25796/bdd.v3i1.54523

Ce sixième et dernier article explique la réalisation des tableaux de bords avec le logiciel R : https://doi.org/10.25796/bdd.v3i3.58203

Comme dans les numéros précédent un fichier exemple, tiré de la base de données du RDPLF sera utlisé.

Claire Della Vedova est Ingénieure en biostatistique / data analyste, Elle utilise quotidiennement le logiciel R pour analyser des données. Elle a travaillé pendant plus de 15 ans dans les domaines de l'environnement et de la santé, et a formé de nombreux étudiants et chercheurs à l'utilisation de R. Elle anime depuis novembre 2017 le blog Statistique et Logiciel R dont le but est d'aider les débutants à mieux appréhender les méthodes statistiques classiques et à utiliser le logiciel R plus efficacement, notamment au travers de tutoriels : https://statistique-et-logiciel-r.com/.

La formation totale s'est dérooulée sur 15 mois, au rythme d'un article par trimestre à chaque parution du BDD. Cela aura laissé largement le temps d'assimiler et tester les connaissances acquises entre chaque article. Pour ceux qui souhaiteront aller plus vite, ils pourront aller sur le blog (https://statistique-et-logiciel-r.com/).

Mots clés : Statistiques, épidémiologie, RDPLF, Logiciel libre R, cours de statistiques

<figure><img src="image_1.png" /></figure>
Réaliser un tableau de bord (ou dashboard) pour communiquer et partagez une analyse statistique peut être particulièrement efficace. J'en veux pour preuve les nombreux tableaux de bord qui ont été publiés pour décrire l'évolution de l'épidémie du Covid-19. Par exemple, celui-ci :

<figure><img src="image_2.png" /><figcaption>↑ Fig. 1</figcaption></figure>

Consultable à l'adresse : https://gisanddata.maps.arcgis.com/apps/opsdashboard/index.html#/bda7594740fd40299423467b48e9ecf6

Ou encore celui-là :

<figure><img src="image_3.png" /><figcaption>↑ Fig. 2</figcaption></figure>

consultable à l'adresse : https://mapthenews.maps.arcgis.com/apps/opsdashboard/index.html#/5e09dff7cb434fb194e22261689e2887

Comme vous allez le voir, il est relativement facile de réaliser des tableaux de bord avec le logiciel R.

En effet, il existe un package dédié, le package *flexdashboard*. Ce dernier utilise le format R markdown dont nous avons parlé dans un précédent article (https://bdd.rdplf.org/index.php/bdd/article/view/54523/51453).

Dans cet article-ci, je vais vous montrer comment construire, en pas à pas, un tableau de bord simple, avec ce package *flexdashboard*.
# Préambule

## Installation du package flexdashboard

Pour commencer, il faut installer et charger le package *flexdashboard*. Pour cela, vous pouvez exécuter les deux commandes suivantes :

```bash
#install/packages(«flexdashboard»)
library(flexdashboard)
```

## Ouverture d'un modèle

Il est ensuite nécessaire d'ouvrir un modèle (ou template) de fichier R markdown, spécifique aux tableaux de bord.

Pour cela : File -> New File -> R markdown -> From Templates -> Flex Dashboard

<figure><img src="image_4.png" /><figcaption>↑Fig. 3</figcaption></figure>

Cela va entraîner la création d'un fichier similaire à celui ci-dessous. J'ai seulement ajouté un titre de document : "Mon super premier dashboard".
<figure><img src="image_5.png" /><figcaption>↑Fig. 4</figcaption></figure>

En knitant ce template, c'est-à-dire en cliquant sur le bouton Knit avec la pelote :

<figure><img src="image_6.png" /><figcaption>↑Fig. 5</figcaption></figure>

nous obtenons ce rendu :
<figure><img src="image_7.png" /><figcaption>Fig. 6</figcaption></figure>

Il s'agit d'un tableau de bord vide, que nous allons donc remplir !
Mais avant cela, nous allons voir les possibilités offertes par *flexdashboard*, en termes d'éléments et de dispositions.

## Les possibilités de flexdashboard

### Les principaux éléments

Le tableau de bord peut contenir de nombreux éléments. Ceux-ci sont crées en employant des fonctions disponibles au sein du package *flexdashboard*.

Ces fonctions sont utilisées à l'intérieur de chunks puisqu'il s'agit de code R. Si, cette notion ne vous est pas familière, je vous conseille de consulter l'article dédié à R markdown (https://bdd.rdplf.org/index.php/bdd/article/view/54523/51453.)
Des boites avec des icônes modifiables

<figure><img src="image_8.png" /><figcaption>↑Fig. 7</figcaption></figure>

Comme nous le verrons plus loin dans l'exemple, ces boites sont créées à l'aide de la fonction valueBox().Les icônes peuvent être choisies sur le site "Font Awesome" (https://fontawesome.comicons?d=gallery).

Des gauges :

<figure><img src="image_9.png" /><figcaption>↑Fig. 8</figcaption></figure>

Ces gauges sont créées en employant la fonction gauge().

Autres éléments

Les dashboards peuvent également contenir :

* des graphes

* des tables

* des widget html comme une carte leaflet (https://rstudio.github.io/leaflet/),

<figure><img src="image_10.png" /><figcaption>↑Fig. 9</figcaption></figure>

Vous pourrez consulter un tutoriel ici : https://statistique-et-logiciel-r.com/premiers-pas-en-car-
tographie-avec-r/

* ou encore, plus simplement, du texte.
## Les dispositions

Par défaut, le dashboard est organisé en deux colonnes. Celles-ci sont séparées, dans le script, par un trait discontinu :

<figure><img src="image_11.png" /><figcaption>↑Fig. 10</figcaption></figure>

Une disposition en ligne peut être employée. Pour cela l'option *orientation : rows* est ajoutée dans la section *output* de l'en-tête :

<figure><img src="image_12.png" /><figcaption>↑Fig. 11</figcaption></figure>

Une barre de scrolling peut également être ajoutée :
<figure><img src="image_13.png" /><figcaption>Fig. 12</figcaption></figure>

Ou encore des onglets (ou tabsets) :

<figure><img src="image_14.png" /><figcaption>Fig. 13</figcaption></figure>

## Mises en page secondaires

Le tableau de bord peut également contenir plusieurs pages. Dans l'exemple ci dessous (https://beta.rstudioconnect.com/jjallaire/htmlwidgets-ggplotly-geoms/htmlwidgets-ggplotly-geoms.html#geom_point), il ya une page pour les `geom_point`, et une page pour les `geom_density`.
<figure><img src="image_15.png" /><figcaption>↑ Fig. 14</figcaption></figure>

Nous le verrons plus tard dans l'exemple que nous allons élaborer, la création de ces différentes pages se fait simplement en ajoutant une double ligne dans le fichier de script :

<figure><img src="image_16.png" /><figcaption>↑ Fig. 15</figcaption></figure>

Des thèmes sont encore directement utilisables. Et l'apparence du tableau de bord peut être géré
via un fichier css.

Enfin, vous pouvez encore ajouter un logo !

Pour plus d'informations sur les diverses possibilités de ces tableaux de bords construits avec flexdashboard vous pouvez consulter la documentation du package : https://r-markdown.rstudio.com/flexdashboard/using.html
## Création d'un tableau de bord

Voici le tableau de bord que nous allons construire :

<figure><img src="image_17.png" /><figcaption>↑Fig. 16</figcaption></figure>

Vous pouvez le visualiser ici : https://rpubs.com/blog_slr/tableau_bord_rdplf

Les données employées sont les même que celles des articles précédents, elles sont téléchargeables au format csv à cette adresse : https://www.rdplf.org/exempleR/FichierExempleStat.csv.

Voici des copies écran des différentes parties du dashboard :

### L'en-tête

<figure><img src="image_18.png" /><figcaption>↑Fig. 17</figcaption></figure>

J'ai donc choisi une disposition en ligne, avec une barre de scrolling verticale, et j'ai ajouté un logo (attention l'image doit se trouver dans le même emplacement que le script qui sert à réaliser le tableau de bord).
## Le chunk set up

<figure><img src="image_19.png" /><figcaption>↑Fig. 18</figcaption></figure>

C'est ici que nous pouvons charger les packages qui seront nécessaires, ainsi que le jeu de données.

## Page Description

### Les boites de la première ligne

<figure><img src="image_20.png" /><figcaption>↑Fig. 19</figcaption></figure>

Comme expliqué précédemment, le double trait permet de créer une page qui sera intitulée "Description".

Puis le simple trait, en dessous du mot clé "Row" permet de créer la première ligne du tableau de bord.

Les 3 symboles # permettent d'é créer un titre d'ajouter du texte dans la boite. Enfin, le code de création des boites est utilisé dans un chunk.
Les jauges de la seconde ligne

```
43 Row
44
45
46 ### Pourcentage de femmes
47
48 ...{r}
49 Freq_homme <- round(100*sum(mydata$sexe=="M")/nbPatients,2) *
50
51 Freq_femme=100-Freq_homme
52 gauge(Freq_femme, min=0, max=100)
53
54
55 ### Pourcentage d'hommes
56
57 ...{r}
58 gauge(Freq_homme, min=0, max=100)
59
60
61
```

<caption>↑Fig. 20</caption>

Les plots de la troisième ligne

```
62 Row
63
64
65 ### Nombre de patients par pays
66
67 ...{r}
68 ggplot(mydata, aes(y=PAYS, fill=PAYS))+
69 geom_bar(color="black", show.legend = FALSE)+
70 facetWrap(~sexe)+
71 xlab("Nb de patients")
72
73
74
75 ### Etude de l'Age par DP
76
77 ...{r}
78 ggplot(mydata, aes(y=Age.lere.DP, x=Type.de.DP, fill=Type.de.DP),
79 colour=Type.de.DP))+
80 geom_jitter(height=0, show.legend = FALSE)+
81 geom_boxplot(alpha=0.5, colour="black", show.legend = FALSE,
82 putlayer.alpha = 0)+
83 facetWrap(~sexe)
84
85
86
```

<caption>↑Fig. 21</caption>
<figure><img src="image_21.png" /><figcaption>↑ Fig. 22</figcaption></figure>

## Page des données

<figure><img src="image_22.png" /><figcaption>↑ Fig. 23</figcaption></figure>

Ici, un second double trait est employé afin de créer une page nommée "Données". Vous trouverez plus d'information sur l'utilisation du package DT pour créer des table de données ici : https://rstudio.github.io/DT/

## Obtention du tableau de bord et déploiement

Pour visualiser votre tableau de bord dans le viewer de R Studio (un des onglets de la fenêtre en bas à droite), il suffit simplement de kniter le document. Vous pouvez également l'ouvrir dans une fenêtre de votre navigateur en cliquant sur l'icône de la fenêtre (en haut à gauche du Viewer).
<figure><img src="image_23.png" /><figcaption>Fig. 24</figcaption></figure>

Vous pouvez ensuite, très facilement déployer votre tableau de bord, sur le site Rpubs, par exemple, en cliquant sur le bouton publish en haut à droite du viewer.

Conclusion

J'espère que cette initiation vous aura convaincu que la réalisation de tableaux de bord avec le logiciel est relativement simple à mettre en oeuvre, et qu'elle vous aura donné envie d'essayer!
Car les tableaux de bord peuvent vraiment être une bonne solution pour présenter et partager vos analyses de données.

Et si ce sujet de la création de tableaux de bord sous R vous intéresse, vous trouverez un autre exemple de réalisation dans cet article : https://statistique-et-logiciel-r.com/ playlist-spotify-r/

Open Access : cet article est sous licence Creative commons CC BY 4.0 : https://creativecommons.org/licenses/by/4.0/deed.fr

Vous êtes autorisé à :

Partager — copier, distribuer et communiquer le matériel par tous moyens et sous tous formats

Adapter — remixer, transformer et créer à partir du matériel pour toute utilisation, y compris commerciale.

Cette licence est acceptable pour des œuvres culturelles libres.

L'Offrant ne peut retirer les autorisations concédées par la licence tant que vous appliquez les termes de cette licence, selon les conditions suivantes :

Attribution — Vous devez créditer l'Œuvre, intégrer un lien vers la licence et indiquer si des modifications ont été effectuées à l'Oeuvre. Vous devez indiquer ces informations par tous les moyens raisonnables, sans toutefois suggérer que l'Offrant vous soutient ou soutient la façon dont vous avez utilisé son Oeuvre. http://creativecommons.org/licenses/by/4.0/.