Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Importer vos données

Etienne
March 07, 2013

Importer vos données

› Créer un projet R
› Regardez les données dans R (rappel) › Créer des données appropriées pour R › Importer des données
› Manipuler des fichiers de données brisées › Identifier le problème
› Le réparer dans une feuille de calcul › Le réparer dans R
› Manipuler des formats de données douteuses › Restructurer de large à long
› Sauvegarder et exporter des données

Etienne

March 07, 2013
Tweet

More Decks by Etienne

Other Decks in Science

Transcript

  1. www.meetup.com/Montreal-R-User-Group/

    View Slide

  2. Importer vos
    données
    Matière préparé par
    Etienne Low-Decarie et
    Zofia Taranu

    View Slide

  3. Objectifs
    ›  Créer un projet R
    ›  Regardez les données dans R (rappel)
    ›  Créer des données appropriées pour R
    ›  Importer des données
    ›  Manipuler des fichiers de données brisées
    ›  Identifier le problème
    ›  Le réparer dans une feuille de calcul
    ›  Le réparer dans R
    ›  Manipuler des formats de données douteuses
    ›  Restructurer de large à long
    ›  Sauvegarder et exporter des données

    View Slide

  4. ›  Crée une structure de dossier de base pour
    chacun de vos projets
    ›  Vous aide à rester organisé
    ›  R obtient et sauvegarde tout ici
    Créer un projet R

    View Slide

  5. ›  Pour commencer: vous pouvez télécharger
    toute la structure avec scripts R, données, etc.
    de:
    ›  https://github.com/zerotorhero/MBSU
    Créer un projet R

    View Slide

  6. ›  Prochaine étape: Ouvrez R Studio et un
    sélectionnez Créer Projet
    ›  Dit à R que ceci est le projet et le dossier sur
    lequel vous allez travailler
    Créer un projet R dans R Studio

    View Slide

  7. ›  Allez rechercher le répertoire que vous avez
    téléchargé de github
    Créer un projet R dans R Studio
    1
    2
    3

    View Slide

  8. Créer un projet R dans R Studio
    ›  Quitter R studio et rouvrez-le en double-
    cliquant sur le fichier du projet
    ›  R-studio rouvrira avec tous vos scripts ouverts tel
    qu'ils étaient lorsque vous aviez quitté
    ›  Vous pouvez naviguer tous vos fichiers directement
    dans votre dossier de projet

    View Slide

  9. Les Scripts
    ›  Qu'est-ce que c'est?
    ›  Un fichier texte qui contient toutes les commandes
    que vous utiliserez!
    ›  Une fois écrit et sauvegardé, votre fichier script
    vous permet de faire des changements et ré-
    exécuter l'analyse avec un effort minimal!

    View Slide

  10. Créer un Script R

    View Slide

  11. Le Script est vide

    View Slide

  12. Fichier -> Ouvrir fichier ->
    02_Importer vos données.R
    Recommandation:
    o  Sauvegardez votre propre script:
    Fichier -> Enregistrer sous ->
    Mon_propre_script.R
    o  référer au code fourni uniquement si nécessaire
    o  éviter de copie-coller ou d'exécuter le code
    directement du script 02_Importer vos données.R

    View Slide

  13. Le Script

    View Slide

  14. ›  Texte dans le script R ressemble à
    entrée # ceci est ma commande
    ›  Pour exécuter cette commande surligner la et
    cliquer sur Run (raccourci: CTRL ↵ ou ⌘↵)
    Les Scripts

    View Slide

  15. Commentaires
    ›  # ce symbole dit à R d'ignorer le texte qui suit
    ›  commentaires/documentation
    ›  annotez le script de quelqu’un d’autre est une
    bonne façon d'apprendre
    ›  rappelez de ce que vous avez fait
    ›  dire à vos collaborateurs ce que vous avez fait
    ›  bon pas vers la science reproductible

    View Slide

  16. Taches ménagères
    ›  Étapes que vous devez prendre avant
    l'exécution du code
    ›  Il est recommandé de placer un en-tête
    dans chacune de vos scripts

    View Slide

  17. Taches ménagères
    ›  Supprime toutes les variables de la mémoire
    ›  Évite des erreurs telles que l'utilisation d’anciennes
    données
    # Supprimer la mémoire R
    rm(list = ls() )
    Tapez ceci dans
    votre script R

    View Slide

  18. Répertoire
    ›  Un répertoire est un dossier et les instructions (chemin)
    pour y arriver
    ›  “/” sépare les dossiers et fichiers
    ›  “.” indique le répertoire de travail courant
    ›  c.-à- où vous avez créé votre projet
    ›  Pour savoir quel est le répertoire de travail courant
    ›  tapez “getwd()” dans la console
    ›  R Studio définit automatiquement le répertoire qui
    contient votre projet R
    ›  Alors il n’est pas nécessaire d’établir le répertoire avec R
    Studio (seulement avec R)
    setwd ("~ / Desktop / PhD / HIVER atelier 2013/Stats/Intro Jour 1")

    View Slide

  19. ›  Trouvez d’autres données
    ›  CO2, iris, trees …
    ›  Et examinez les avec:
    ›  Comparez vos données à celles
    qui se retrouvent dans R et à
    celles de votre voisin
    Examiner les données
    data()
    head(); str(); names(); attributes(); summary(); plot()

    View Slide

  20. Examiner les données
    load a built-in data file
    peek at first few rows
    structure of the object
    names of items in the object
    attributes of the object
    summary statistics
    plot of all variable combinations
    data(CO2)
    head(CO2)
    str(CO2)
    names(CO2)
    attributes(CO2)
    summary(CO2)
    plot(CO2)
    Working with
    a data frame
    importez des bases de données intégrées
    regardez les premières lignes
    structure de l’objet
    noms d’éléments dans l’objet
    attributs de l’objet
    statistique sommaire
    graphique de toutes les combinaisons
    de variables

    View Slide

  21. Préparation des données pour R
    ›  Fichiers de formats séparés par la virgule
    (.csv) dans le dossier de données
    ›  peut être créé à partir de presque toutes les
    applications (Excel, LibreOffice, GoogleDocs)
    ›  Fichier -> Enregistrer sous…
    .csv

    View Slide

  22. ›  Entêtes de colonnes courtes et informatives
    ›  en commençant par une lettre
    ›  sans espaces
    Préparation des données pour R

    View Slide

  23. ›  Les valeurs des colonnes correspondent à l'usage
    prévu
    ›  pas de texte dans les colonnes numériques
    ›  y compris les espaces
    ›  NA (non disponible) est permis
    ›  Évitez des valeurs numériques pour des données
    qui n’ont pas de signification numérique
    ›  Sujet, Réplication, Traitement
    ›  1,2,3 -> A,B,C ou S1,S2,S3 ou …
    Préparation des données pour R

    View Slide

  24. ›  Pas de patente à gosse
    ›  pas de notes, rubriques supplémentaires, ou
    de cellules fusionnées
    Préparation des données pour R

    View Slide

  25. ›  Large
    ›  Chaque niveau d'un
    facteur obtient une colonne
    ›  Plusieurs mesures par ligne
    ›  Excel, SPSS…
    ›  Avantages
    ›  Joue bien avec les humains
    ›  Pas de répétition des
    données
    ›  Bon pour jeter un coup
    d’oeil
    ›  Inconvénients
    ›  Ne joue pas bien avec R
    ›  Long
    ›  Niveaux sont exprimés dans une
    colonne
    ›  Une valeur mesurée par ligne
    ›  Avantages
    ›  Joue bien avec les ordinateurs
    ›  Inconvénients
    ›  Ne joue pas bien avec les humains
    ›  Beaucoup de copie coller et
    oublier le coup d’oeil!
    Préparation des données pour R
    ID variable Phosphore Région
    1 52 rivière
    2 175 lac

    ID variable Facteur Valeur mesurée
    1 Phosphore 52
    1 Région rivière
    2 Phosphore 175
    2 Région lac

    View Slide

  26. Préparation des données
    ›  Essayez de préparer vos propres données
    pour R, ou trouver des données
    intéressantes en ligne et préparer les
    ›  NB: il est possible de faire tout votre travail
    de préparation au sein de R
    ›  peut être très fastidieux
    ›  garde les données originaux intacts
    ›  pouvez même alterner entre le format long
    et large

    View Slide

  27. Importez vos données
    ›  Nous allons maintenant importer le fichier de
    données
    iris_data<-­‐read.csv(“./Data/iris_good.csv”)  
    ›  Rappel: pour découvrir quels sont les arguments
    que la fonction nécessite, utiliser l'aide “?”
    !
    Objet
    (nom)
    Fonction
    (ce que je fais)
    Argument
    (à quoi s’applique ceci)
    ?read.csv  

    View Slide

  28. Petit truc
    ›  Pour faire les choses un peut plus rapides
    ›  La touche:
    –>
    -
    _ Ctrl -
    _
    ou

    View Slide

  29. Notez que R-Studio fournit
    maintenant des informations sur
    iris_data
    Importez vos données

    View Slide

  30. Trichez
    ›  Ceci imprime la même commande à la
    console

    View Slide

  31. ›  Essayez d'importer les données que vous
    avez préparées pour R
    ›  mes_bonnes_données<-read.csv(…)
    ›  Essayez d'importer des données qui ne
    sont pas prêtes pour R
    ›  pas_prêtes<-read.csv(…)
    ›  Examiner les deux
    Importez vos données

    View Slide

  32. ›  Vous pouvez effectuer des calculs pour chaque
    groupe
    ›  Par exemple:
    ›  Remplacez des valeurs spécifiques
    iris_data$mean.sepal.length[iris_data$Species=="setosa"]<-with(iris_data,
    mean(Sepal.Length))
    iris_data$Species[iris_data$Species=="setosa"]<-"Setosa"
    Manipuler les données

    View Slide

  33. ›  Manipulez vos propres données
    ›  mes_données_avec_calcs<-mes_données
    ›  moyennes de groupe, densité, volume…
    Manipuler les données

    View Slide

  34. Sauvegarder des données
    # Saugarder un fichier R
    save(iris_data, file = ”./Output/iris_cleaned.R")
    # Suprimer la mémoire
    rm(list = ls())
    # Réimporter iris_data
    load(”./Ouptut/iris_cleaned.R")
    head(iris_data) # Tout semble bon!
    Sauvegarder
    Effacer
    Réimporter
    … c’est tout!

    View Slide

  35. Exporter des données
    write.table(normalized_iris, file=”./Output/normalized_iris.csv", sep
    = ",")
    … c’est tout!

    View Slide

  36. Sauvegarder et exporter
    ›  Manipulez, sauvegardez et exportez vos
    données
    ›  mes_données_avec_calcs
    ›  Ouvrez-le dans l’application de votre choix
    (Excel, etc.)

    View Slide

  37. Défi difficile
    ›  Importer le fichier "CO2_broken.csv”
    ›  C'est probablement à ce que ressemble vos données
    ou les données que vous avez téléchargés
    ›  Vous pouvez le faire en R (ou non…)
    ›  Importer vos propres données non préparées
    ›  SVP ne pas regarder les réponses dans le script
    avant d'essayer
    ›  Travailler avec vos voisins et amusez-vous!
    ›  INDICE: Il y a 4 erreurs

    View Slide

  38. www.meetup.com/Montreal-R-User-Group/

    View Slide

  39. Extras:
    Importer des données mal formatées à
    partir de R

    View Slide

  40. Données mal formatées
    ›  Essayez d’importer les données mal en point:
    ›  Cela n'a pas fonctionné parce que l'extension est .txt et
    non .csv
    iris_brisées<-read.csv("iris_broken.csv")
    > iris_brisées<-read.csv("iris_broken.csv")
    Error in file(file, "rt") : cannot open the connection
    In addition: Warning message:
    In file(file, "rt") :
    cannot open file 'iris_broken.csv': No such file or directory
    iris_brisées<-read.csv("iris_broken.txt")
    EURREUR 1

    View Slide

  41. > head(iris_brisées)
    I.did.my.best.to.create.the.most.annoying.file.to.import.into.R
    1 This really looks like the first file I ever imported into R\t\t\t\t\t
    2 I since do a way better job of cleaning up my data\t\t\t
    \t\t
    3 But some collaborators will never diverge from their sloppy ways\t
    \t\t\t\t
    4 \tSepal.Length\tSepal.Width\tPetal.Length\tPetal.Width
    \tSpecies
    5 1\t5.1\t3.5\t1.4\t0.2\tsetosa
    6 2\t4.9\t3\t1.4\t0.2\tsetosa
    head(iris_brisées)
    ›  Les données semblent être regroupés dans une seule
    ligne!
    ERREUR 2
    Données mal formatées

    View Slide

  42. ›  Réimporter les données, mais spécifier la séparation
    entre les entrées
    ›  L'argument sep indique à R quel caractère sépare les
    valeurs de chaque ligne du fichier (ici, TAB a été utilisé)
    ›  Les 4 premières lignes sont inutiles
    ›  Y at-il autre chose étrange?
    iris_brisées<-read.csv("iris_broken.txt", sep = “”)
    head(iris_brisées)
    str(iris_brisées)
    ERREUR 2
    iris_brisées<-read.csv("iris_broken.txt", sep = "", skip = 4)
    head(iris_brisées)
    str(iris_brisées)
    ERREUR 3
    Données mal formatées

    View Slide

  43. ›  La plupart des variables continues sont listés
    comme facteurs (catégorique)
    ›  En raison de valeurs manquantes entré comme
    «valeur_oublié» et «na»
    ›  Rappel: R reconnaît que «NA» (capitalisé)
    > str(iris_data)
    'data.frame': 150 obs. of 5 variables:
    $ Sepal.Length : Factor w/ 35 levels "4.3","4.4","4.5",..: 9 7 5 4 8 12 4 ...
    $ Sepal.Width : Factor w/ 24 levels "2","2.2","2.3",..: 15 10 12 11 16 ...
    $ Petal.Length : Factor w/ 45 levels "1","1.1","1.2",..: 5 5 4 6 5 8 5 6 5 ...
    $ Petal.Width : num 0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ...
    $ Species : Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 ...
    ERREUR 4
    Données mal formatées

    View Slide

  44. ERREUR 4

    View Slide

  45. ERREUR 4
    read.csv("iris_broken.txt",
    sep = "",
    skip = 4,
    na.strings = c("NA","na","Forgot_this_value"))
    Le correctif!

    View Slide

  46. ERREUR 5
    ›  Ok, nous avons presque terminé!
    ›  Plusieurs variables apparaissent toujours comme
    facteurs
    ›  rangée 23 de Sepal Width a été inscrit comme “_3.6”
    au lieu de “3.6”
    ›  Deux nouveaux arguments dont nous aurons besoin
    ›  as.is
    ›  as.numeric
    Indique à R de laisser la variable tout seule
    Indique à R de rendre la variable
    numérique
    iris_brisées$Sepal.Width[23]
    class(iris_brisées$Sepal.Width)
    Données mal formatées

    View Slide

  47. ›  Maintenant, R pense que ces variables sont
    uniquement des caractères
    ›  Donc l'étape suivante est d'utiliser as.numeric
    ›  Notez le message d'avertissement car un NA a été
    introduit là où il y avait des valeurs non-numériques
    ERREUR 5
    iris_data<-read.csv("iris_broken.txt",
    sep="",
    skip=4,
    na.strings=c("NA", "na","forgot_this_value"),
    as.is=c("Sepal.Width", "Petal.Length"))
    iris_brisées$Sepal.Width <- as.numeric(iris_brisées$Sepal.Width)
    iris_brisées$Petal.Length <- as.numeric(iris_brisées$Petal.Length)
    Données mal formatées

    View Slide

  48. www.meetup.com/Montreal-R-User-Group/

    View Slide