From 9d49e6a5bc952672129474865893fc4e9798a97b Mon Sep 17 00:00:00 2001 From: b05f84b9ee021dccccc4787bb5a09153 Date: Thu, 18 Mar 2021 12:33:56 +0000 Subject: [PATCH] Update Journal_de_bord_LY.md --- Journal_de_bord_LY.md | 69 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) diff --git a/Journal_de_bord_LY.md b/Journal_de_bord_LY.md index 16f7471..d6aff52 100644 --- a/Journal_de_bord_LY.md +++ b/Journal_de_bord_LY.md @@ -1,7 +1,76 @@ --- Titre : "Journal de bord" Auteur : "LY" +Date : "15/03/2021" --- Début d'utilisation : fin de la semaine 2 +## Module 3 + +1. Analyse de données réplicable + +Résultat méthodologique devient ensemble des codes ayant permis de faire les calculs accompagnés d'une explication détaillée + +2. Etude de cas : incidence des syndromes grippaux + +Format date selon la norme ISO 8601 des date : l'année commence par la 1ere semaine qui contient le 4 janvier ou celle qui a plus de la moitié des ces jours dans l'année en cours. + +Ne jamais faire des modications de données à la main : plutôt avec du code. + +3. Importer les données avec Rstudio / R + +environnement RStudio ; langage R ; bibliothèque parsedate pour la gestion des +dates en format iso + +Important de lire les données directement de la source et faire attention aux données manquantes. + +Pour charger un document d'un site web : insérer un chunk R dans le document markdown l'adresse +Dans le chunk data_url = "lien url" +Si première ligne à ignorer : écrire 'data = read.csv(data_url, skip=1)' + +Pour voir les premières lignes de données : 'head(data)' +Pour voir les dernière lignes de données : 'tail(data)' + +Recherche de données manquantes 'données_manquantes = apply(data, 1, function(x) any(is.na(x)))' +Le "1" fait passer la commande ligne par ligne et la fonction fait la recherche de données manquantes colonne par colonne. + +Pour inspecter le type de données : 'class(data$variable)'; +Ceci donne : interger (Nb entier); factor (V. qualitative); + +Pour transformer une donnée comme "-" ou "?" en valeur manquante, il faut relire les données en spécifiant les valeur à lire comme valeur manquante : +'data = read.csv(data_url, skip=1, na.string = "-"' + +4. Vérification et inspection des données + +date au format iso dans la librairie parsedate ; + +Exple : 'date = 199501' + conversion en chaine de caractères : 'ws = paste(date)' + attribution année et semaines : 'iso = paste0(substring(ws, 1, 4) "-W", substring(ws, 5 ,6)' + Le résultat : "1995-W01" correspondant semainte 7 de l'année 1982 + Ensuite faire appel à la fonction **parse_iso8601** soit parse_iso_8601(iso) + Ceci donne : "1995-01-02 UTC" soit la date du lundi de cette semaine. + + On transforme tout ce qui précède pour l'appliquer à une variable. + 'convert_week = fonction(date) { + ws = paste(date) + iso = paste0(substring(ws, 1, 4), "-W", sobstring(ws, 5, 6)) + parse_iso_8601(iso) + }' + Résultat à coller dans une nouvelle variable : sapply(data$week, convert_week) + Malheureusement 'sapply' va donner des nombres entiers dans la base. + Convertir alors la ligne parse_iso_8601 en chaine de caractère : 'as.character(parse_iso_9601(iso)) + Puis en date : 'data$date = as.Date (sapply(data$week, convert_week))' + +Deuxième étape : classer les données par ordre chronologique : 'data = data[order(data$date),]' + + Vérifier si distance entre 2 dates voisines = 1 semaine : 'all(diff(data$date)) == 7' + + appliquer un plot : 'with(data, plot(V1, V2, type="l"))' + Si trop serré, refaitre sur les 200 dernières lignes : 'with(tail(data, 200), plot(V1, V2, type="l"))' + +A la fin vérifier les données par l'inspection visuelle (plot par exple) et des code de validation (vérifier distance entre deux semaines par exple). + +5. Exercice + -- 2.18.1