class: center, middle, inverse, title-slide .title[ # Saisie des données sous tableur ] .subtitle[ ## .doana-title[
] ] .author[ ### DoAna - Statistiques Réunion ] .date[ ### 2024 ] --- layout: true .my-footer[![](img/logoDoAna.png) .footer-title[Saisie des données sous tableur]] --- background-image: url(img/01-saisie_microtubules.png) background-size: contain ??? Si on donne ça à manger à R, il ne sera pas content et le fera bien comprendre ! --- ## Objectif .pull-left[ ### Provenance des données - Instruments de mesure - Bases de données en ligne - Un cahier de laboratoire ou de terrain (données écrites manuellement) - ... ] -- .pull-right[ ### Sauvegarde des données - Dans une feuille de calcul - Dans une base de données ### De telle sorte qu'elles soient - Lisibles par une machine : un algorithme peut les lire - Lisibles par les êtres humains : elles sont documentées ] --- name: plan ## Sommaire *** .pull-left[ 1) Mise en forme des données - Démarrage - *Tidy data* 2) Les variables - Choix des variables - Remplissage des cellules - Les dates - Bien nommer ] .pull-right[ 3) Logique en base de données - Echelles du jeu de données - Documenter son jeu de données 4) Préparer les données en vue d'une importation sous R - Tableaux croisés dynamiques et autres graphiques - Formats de sauvegarde ] --- class: inverse, center, middle # Mise en forme des données --- ## Démarrage *** - Feuille de saisie `\(\neq\)` Feuille de terrain -- - Tableau rectangulaire **et c'est tout** ! -- - Saisir les données **brutes** -- > Calculs interdits dans le tableur -- ### *Tidy data* - Individu ou observation `\(\leftrightarrow\)` Ligne - Variable `\(\leftrightarrow\)` Colonne - Valeur `\(\leftrightarrow\)` Cellule --- name: tidy ## *Tidy Data* *** Plusieurs manières de stocker des données : .tidy[ {{content}} ] ??? C'est un travail en amont, qui fait gagner du temps ! Source : r4ds.had.co.nz --- template: tidy ![](img/01-saisie_tidy-1.png) --- template: tidy ![](img/01-saisie_tidy-2.png) --- template: tidy ![](img/01-saisie_tidy-3.png) --- template: tidy ![](img/01-saisie_tidy-4.png) --- template: tidy - Approche inférentielle `\(\leftrightarrow\)` Format long - Approche multivariée `\(\leftrightarrow\)` Format court -- > Les données tidy sont les plus simples à importer dans R. ??? Il est possible d'avoir des données non-tidy assumées. --- ## Exercice *** Combien pouvez-vous trouver de variables ? ![](img/01-saisie_ex-untidy.png) --- ## Solution *** ![](img/01-saisie_ex-tidy.png) ??? Difficile de faire cela avec R (mais ça se fait), contrairement aux exemples précédents. D'où l'intérêt de rentrer correctement les données dès le départ. Source : https://peerj.com/preprints/3183/ --- template: plan --- class: inverse, center, middle # Les variables --- name: variables ## Choix des variables *** - Une colonne = une variable = une information - Une seule ligne pour le nom des variables {{content}} --- template: variables ### Variables qualitatives - Ordinale ou nominale ? - Une modalité = ce qui est observable - Généralement, nombre limité de modalités à prévoir à l'avance si possible ??? - La couleur des yeux : bleu, vert, marron - A quelle fréquence regarde-t-on la télévision : jamais, rarement, souvent --- template: variables ### Variables quantitatives - Continue ou discrète ? - Ce que l'on a mesuré ou compté, **pas de calculs** - Pas d'unités de mesure - Etre conscient du séparateur décimal : `","` ou `"."` - Si UN caractère texte présent dans la colonne, celle-ci sera interprété entièrement comme du texte ! ??? - mesure de la hauteur d'arbres - comptage d'insectes --- ## Remplissage des cellules *** ### Cas général - Remplir **toutes** les cellules - Ne pas fusionner les cellules - Les couleurs ne seront pas importées - Attention à l'orthographe des modalités -- ### Valeurs manquantes - Utiliser le même codage - Convention `"NA"` (*not available*) - Choix entre `"0"` (il n'y en a pas) et `"NA"` (cela n'a pas pu être observé) parfois difficile ??? Une parcelle qui crame : rendement de 0 (rien de récolté) ou NA (la parcelle sort de l'expérimentation) ? --- ## Les dates *** - Indiquer l'année - Formats recommandés : `jj/mm/yyyy` ou `yyyy-mm-jj` ou même `yyyymmjj` - Se tenir à un seul format - **Attention** : valeur stockée `\(\neq\)` valeur affichée -- - Stockage en nombre de jours depuis une date référence (R : `1970-01-01`) ??? - Si pas d'année et saisie faite l'année d'après : décalage - On peut aussi faire 3 colonnes, pour plus de sécurité : année mois jour - Préférence personnelle pour le format `yyyy-mm-jj` car ordre chronologique = ordre alphanumérique et `yyyymmjj` car pas de risque d'interprétation d'Excel --- name: nommer ## Bien nommer pour satisfaire R *** Choisir des noms simples, courts, informatifs. {{content}} --- template: nommer ### Nom des variables - Homogénéiser - Casse - Caractères spéciaux interdits - Espaces interdits - Complétion --- template: nommer ### Nom des modalités - Faire des abbréviations, mais pas trop - Casse - Caractères spéciaux possibles mais attention (`#`) - Espaces possibles Attention à `"tomate"` et `"tomate "` - Complétion parfois --- template: nommer ### Convention **snake_case** recommandé : - `nom de variable` devient `nom_de_variable` - `NomDeVariableUpperCamelCase` devient `nom_de_variable_upper_camel_case` (ce qui pourrait être raccourci non ?) - `Variable` devient `variable` -- > Pour les noms de variables et les noms d'objets dans R --- template: nommer ### Exemple de codage utile Pour les noms d'espèces : - L'arabette des dames ou *Arabidopsis thaliana* devient `ARATHA` - La truite arc-en-ciel ou *Oncorhynchus mykiss* devient `ONCMYK` --- template: plan --- class: inverse, middle, center # Logique en base de données relationnelle --- background-image: url(img/01-saisie_BDD.png) ## Exemple : relevés d'espèces *** **Jouons à** : qu'est-ce qui va bien et qu'est-ce qui ne va pas ? ??? Bien : - Tableaux rectangulaires - Logique en BDD : écononie de saisie + organisation - Le format des dates Pas bien : - La clé - les noms des variables - les cases vides - La modalité herbicide qui devrait être "oui" Source : données réelles, mais on ne va pas dénoncer --- ## Echelles du jeu de données *** - Penser en terme d'individus statistiques - Séparer en plusieurs tables avec peu de colonnes - Une table par feuille - Choix des clés pour faire les liens entre les tables -- Avantage principal : économie de saisie `\(\rightarrow\)` moins d'erreurs -- > Organisation des données à penser en amont. --- ## Documenter son jeu de données *** > Le tableur doit se suffire en lui-même -- Créer un onglet "métadonnées" dans le tableur qui donne : - **à quoi sert** chaque table - pour chaque table, quelle combinaison de colonnes **définit ses lignes** de manière unique - que représente **chaque variable** (description en français, unité, modalités possibles, format du code, lien vers plus d'info, etc.) --- ## Documenter son jeu de données *** > Le tableur doit se suffire en lui-même ![](img/01-saisie_BDD-info.png) --- template: plan --- class: inverse, middle, center # Préparer les données en vue d'une importation sous R --- ## Tableaux croisés dynamiques et autres graphiques *** - Visualisation rapide et vérification de la saisie - A faire dans une nouvelle feuille - Mise à jour automatique quand les données sont modifiées .center[![](img/01-saisie_TCD.png)] --- ## Formats de sauvegarde *** Caractéristique|Tableur|Texte ---|---|--- Type de fichier|binaire|brut Extention|.xlsx ou .ods|.txt, .tsv, .csv Suivi des modifications| **-** | **+** Taille et utilisation de la mémoire| **-** | **+** Import dans R | **+** | **-** Contient toutes les infos nécessaires| **+** | **-** Format de la saisie contrôlé | **-** | **+** -- <br> > File > Save as... --- ## Formats de sauvegarde *** <br> Quels séparateurs de champs (= colonnes) possibles pour un fichier texte ? <br> Séparateur|Symbole|Format ---|---|--- Tabulation|`\t`|**.txt** ou **.tsv** Virgule|`,`|**.csv** anglais Point-virgule|`;`|**.csv** français ??? .csv enregistre ce qui est affiché (dates) --- class: inverse, bottom, center ### Maintenant vous savez comment avoir des données toutes propres -- -- -- ### ☺ -- -- -- [Accueil](/)