| |
LaTeX & R
Encore un site sur R !

Juste quelques trucs pour vous aider à débuter en R & LaTeX centré sur la production de rapports via knitr ou RMarkdown.

En clair je me suis fait un aide mémoire que je partage avec vous.

Un tableur comme Excel est un outil de comptabilité analytique & n’a jamais été conçu pour stocker des données. Néanmoins ces logiciels sont puissants, versatiles, très pratiques, semblent simples d’emploi & permettent, sous certaines conditions, de stocker des tableaux simples. Un peu de réflexion & de travail préparatoire vous feront gagner beaucoup de temps.

Dans tous les cas on ne travaille jamais seul, le data-manager ou le statisticien peuvent à tout moment vous conseiller.

Pour mémoire le tableau qui arrive au statisticien, donc quand toutes les saisies & queries sont terminées, doit être complètement anonymisé.

Un seul tableau

Toutes les données doivent rentrer dans un seul tableau. Dans certains cas c’est impossible . Dans ce cas c’est un tableau par onglet (avec un nom clair pour l’onglet). Par exemple, un travail sur la prise en charge d’une pathologie dans les services d’un hôpital. Vous n’allez pas ressaisir les caractéristiques du service pour chaque patient. Vous aurez donc un tableau Patients (1) avec une variable Service qui permettra de rattacher ce patient aux données du service contenus dans un autre tableau nommé Service (2).

Tableau patients
serviceagetaille...
P01 Gastro 85 158
P02 Neuro 65 187
P03 Réa 55 178
Tableau service
ID service nb_lit dms
S01 Gastro 12 5.8
S02 Neuro 16 6.3
S03 Réa 18 6.7

Un tableau c’est un rectangle plein

les cas (patients par ex.) sont en ligne & les variables (âge, poids…) en colonne donc un grand rectangle.

Ce tableau ne contient que les données, aucun calcul. Pas de moyenne en bas de colonnes. Si vous voulez faire des calculs, résumés etc. copiez l’onglet & faites tout ce que vous voulez sur la copie.

Pas de mise en forme

Seul le texte du tableau sera utilisé. Toutes les mises en forme
(couleur, gras...) seront perdues lors de l’importation dans le
logiciel de statistique. Donc utilisez ces aides tant que vous voulez
pour avoir un tableau clair où vous vous repérez facilement mais
l’information ne doit jamais être contenue uniquement dans ces
artifices.


Le tableau réduit au simple texte doit être complet & suffisant.

Données manquantes
ID Patient Age Taille
P01 45 148
P02 84 178
P03 48 NA

Vous aurez des données manquantes. La case ne doit pas être vide pour autant. Il faut noter un code arbitraire pour coder ces données. Habituellement on utilise NA pour Not Available mais l’important est de toujours utiliser le même code.

des Variables

Nom des variables

Le nom de la variable (ou de l’onglet) va être utiliser ensuite dans du code. Par exemple pour calculer la moyenne de l’âge :

  1.  > moy <- mean(age, data = monfichier)

Il donc évident qu’il doit s’agir d’un nom simple & court, pas la question posé au patient sur le questionnaire. Ce nom ne doit pas comporter d’accent, d’espace ou de caractère bizarre. Et il est préférable de tout mettre en minuscule (format dit petit serpent)

Question Nom inutilisable Nom correct
Quel est votre âge ? Âge age
Sexe du patient Sexe patient sexe
Pression artérielle systolique PA systolique pa_sys

Chaque colonne doit avoir un titre & un seul. Donc UNE & une seule ligne de titre.

Tableau inutilisable
H1H2
ID PAM FC SpO2 PAM FC SpO2
P1 123 98 98 145 111 97
P2 145 88 97 154 121 99
P3 125 78 98 145 98 98

Ce tableau, bien que parfaitement clair pour un être humain, est inutilisable. Quel est le nom de la variable en colonne 2 ?

Première solution – format court
Tableau correct - format court
IDPA_H1 FC_H1 SpO2_H1 PA_H2 FC_H2 SpO2_H2
P1 123 98 98 145 111 97
P2 145 88 97 154 121 99
P3 125 78 98 145 98 98

Solution simple. La comparaison des PA entre H1 & H2 (test de student) va s’écrire :

  1.  > t.test(PA_H1, PA_H2)
Deuxième solution – format long

Exactement les mêmes données, seule la présentation change :

Tableau correct - format long
ID heure PA FC SpO2
P1 H1 123 98 98
P1 H2 145 111 97
P2 H1 145 88 97
P2 H2 154 121 99
P3 H1 125 78 98
P3 H2 145 98 98

Moins instinctif mais souvent plus pratique. Le même test de Student va alors s’écrire :

  1.  > t.test(PA~heure)

Du codage des variables

Beaucoup de personnes, souvent beaucoup plus jeunes que moi, sont persuadées qu’un ordinateur ne peut gérer que des chiffres. Grande nouvelle, c’est faux ! Et votre tableau sera plus clair avec des intitulés en clair (Homme, Femme) qu’avec des chiffres (1, 0). Même les scores ou échelles doivent être notés en texte. Les coder en numérique revient à dire que passer de 1 à 2 est aussi grave que de passer de 6 à 7. Vous en être sûr ?

Il reste à éviter les erreurs de saisie. On voit souvent dans la même colonne des oui, Oui & surtout oui (il y a une espace en trop). On peut facilement éviter ça & gagner du temps sur la saisie en utilisant l’outil Validation de données dans Excel. Ça vous évitera aussi des âges de 548 ans & la saisie sera beaucoup plus rapide.

Des nombres

Une variable numérique ne doit contenir que des nombres ! Et > 5 ou 5 mmol/L ne sont pas des nombres ! L’unité de mesure n’a pas à être présente sur le tableau final, ni dans le titre, ni dans les données. Utilisez la validation de données aussi pour vos variables numériques. C’est un peu de travail au début mais un gain de temps & de sécurité ensuite.

Date & Heure

les dates sont une source d’erreur constante. Il existe au moins trois manières d’écrire les dates d’usage courant. La solution est de ne pas laisser Excel choisir & d’entrer les dates en format texte ou de faire très attention au codage. En particulier deux colonnes peuvent être codées différemment sans que vous l’ayez demandé. De toute façon il faudra convertir les dates pour le logiciel de statistique donc choisissez une norme, n’importe laquelle, mais n’en changez pas en route.

France 12/08/2022
12 août 2022
12/08/22
USA 08-12-22
ISO 8601 22-08-12

De plus certains systèmes compte le temps en seconde depuis le 01/01/1900, d’autres depuis le 01/01/1904…

Vous comprenez bien qu’on improvise pas un tableau de données. La bonne solution, un peu lourde mais si pratique, est d’écrire en premier un tableau de ses variables (Code Book) avec toutes les informations sur le modèle :

Tableau des variables nom abrégé type valeurs
1 Âge du patient age entier 18 –110
2 Date d’admission dateadm date dd/mm/yyyy
3 Sexe sexe facteur F / M
4 BMI bmi entier 10 à 60 Kg
5 Score IGS II à l’admission igsadm entier 0 à 120
6 Oxygénothérapie oxy entier 0 à 20
7 Ventilation invasive vi facteur oui/non
8 Sédation sedation facteur oui/non
9 Curarisation curarisation facteur oui/non/nsp

des Sauvegardes !

Un ordinateur n’est qu’une machine & est sujet à la panne. Un disque dur est une mécanique fragile (qu’il soit mécanique ou SSD). Une tasse de café peut se renverser. Donc on fait des sauvegardes ! Sur plusieurs supports en local & à distance. Il existe des solutions simples de sauvegarde (TimeMachine sur MacOS ou rsync sur Linux par ex.).

Un fichier non sauvegardé n’existe pas

Remerciements

La plupart de ces conseils est très bien expliquée sur le blog de Claire Della-Vedova dont je me suis largement inspiré.

Les derniers articles

Des données dans un tableur
Publié le 5 mai 2022
par Philippe MICHEL

Un tableur comme Excel est un outil de comptabilité analytique & n’a jamais été conçu pour stocker des données. Néanmoins ces logiciels sont (...)

Commencer un travail
Publié le 14 avril 2022
par Philippe MICHEL

Un collègue vient de vous envoyer ses données à traiter sous forme d’un tableur. bien entendu ces données ne sont pas exploitables tel quelles. Que (...)

Des labels trop longs
Publié le 24 février 2022
par Philippe MICHEL

Il va donc falloir mettre ces labels sur plusieurs lignes. Il existe heureusement une fonction ad hoc dans le package stringr : str_wrap. (...)

Nouveau projet, nouveau dossier
Publié le 17 février 2022
par Philippe MICHEL

Ce sont les flemmards qui font avancer le monde & dans ce domaine j’ai des compétences !

Donc un nouveau projet (voir mes conseils), un (...)

Préparer un jeu de données
Publié le 15 décembre 2021
par Philippe MICHEL

Voire aussices quelques conseils pour avoir un fichier sur un tableur utilisable. Avant tout

Quand on vous envoie un fichier à traiter, le plus (...)

Pyramide des âges & ggplot2
Publié le 15 décembre 2021
par Philippe MICHEL

Partons d’un data.frame nommé cas contenant au moins les deux rubriques : age numérique sexe factorielle à deux niveaux "H" & "F"

Et traçons la (...)

Quel matériel ?
Publié le 15 décembre 2021
par Philippe MICHEL

Un peu de hardware même si au final ça a très peu d’importance.

Pour utiliser ces deux excellents logiciels, il faut du matériel de pointe enfin (...)

Quel éditeur pour R ?
Publié le 15 décembre 2021
par Philippe MICHEL

Le choix est plus simple que pour LaTeX. On peut bien sûr rester dans le terminal mais ce n’est pas le plus pratique dés qu’on gère plusieurs (...)

Couleurs en dégradé sur des variables factorielles
Publié le 2 décembre 2021
par Philippe MICHEL

Prenont un graphique montrant pour une population le poids (variable numérique) selon des tranches d’âge (variable catégorielle ordonnée) représenté (...)

Des trucs pour R & LaTeX
Publié le 13 novembre 2021
par Philippe MICHEL

Juste quelques trucs pour vous aider à débuter en R & LaTeX centré sur la production de rapports via knitr ou RMarkdown.

En clair je me suis (...)