Restart 4: Tableaux de données

Lise Vaudor

01/02/2021

Lecture de tables: trouver son fichier!

Pour lire un tableau de données il faudra indiquer le chemin du fichier…

Si vous travaillez sous forme de projets .Rproj alors le plus simple est d’indiquer le chemin relatif par rapport au dossier racine (celui qui contient le .Rproj).

Notez l’usage des slashs (/) et non d’antislashs, quel que soit votre système d’exploitation.

Par exemple,

path="data/data_brute/supertableau.csv"

Si pour une raison ou une autre vous avez besoin de remonter dans l’arborescence des fichiers (c’est généralement non recommandé mais ça peut arriver), vous pouvez le faire avec “../”.

Par exemple “../../donnees_hydro” vous fait remonter de deux niveaux dans l’arborescence avant de vous faire redescendre dans un dossier “donnees_hydro”.

Vous pouvez également utiliser la fonction file.path() pour écrire votre chemin:

path=file.path("data","data_brute","supertableau.csv")
path
[1] "data/data_brute/supertableau.csv"

Lecture de tables: Fonctions read_csv() ou read_delim()

Examinons la commande suivante:

catdata <- readr::read_delim(file.path(file.path("..","datasets","catdata.csv")),
                             delim=";")

── Column specification ────────────────────────────────────
cols(
  haircolor = col_character(),
  hairpattern = col_character(),
  sex = col_character(),
  weight = col_double(),
  age = col_double(),
  foodtype = col_character()
)
head(catdata,3)  # 3 premieres lignes du tableau
# A tibble: 3 x 6
  haircolor hairpattern sex    weight   age foodtype
  <chr>     <chr>       <chr>   <dbl> <dbl> <chr>   
1 red       solid       female    4.6    12 other   
2 black     tabby       female    5.5     6 dry     
3 white     tabby       female    5.6     8 wet     

Notez que le format csv correspond à des valeurs séparées par une virgule (“csv”= Coma Separated Values).

Pour lire une table qui comprendrait un type de séparateur différent (par exemple, un espace, ou un point-virgule), on peut utiliser la fonction read_delim().

Jeu de données illustratif

Dans la suite de ce document nous allons utiliser un jeu de données catdata comprenant un certain nombre de variables relatives à des chats 🐱.

Il s’agit de données fictives, créées de toute pièce dans un but pédagogique…

catdata <- readr::read_delim(file.path("..","datasets","catdata.csv"), delim=";")

── Column specification ────────────────────────────────────
cols(
  haircolor = col_character(),
  hairpattern = col_character(),
  sex = col_character(),
  weight = col_double(),
  age = col_double(),
  foodtype = col_character()
)
catdata
# A tibble: 153 x 6
   haircolor hairpattern sex    weight   age foodtype
   <chr>     <chr>       <chr>   <dbl> <dbl> <chr>   
 1 red       solid       female    4.6    12 other   
 2 black     tabby       female    5.5     6 dry     
 3 white     tabby       female    5.6     8 wet     
 4 red       tabby       female    6.1     5 dry     
 5 brown     solid       female    5.3     7 dry     
 6 black     tabby       male      6.9     5 wet     
 7 brown     solid       male      6.3     5 dry     
 8 black     colorpoint  female    5.5     4 wet     
 9 white     tortoise    male      4.3     5 wet     
10 red       solid       female    2.3     3 dry     
# … with 143 more rows

Les variables de ce jeu de données sont les suivantes:

  • haircolor: la couleur du poil (catégoriel)
  • hairpattern: le “pattern” coloré du poil (catégoriel)
  • sex: le sexe du chat (catégoriel)
  • weight: son poids (quantitatif)
  • age: son âge (quantitatif)
  • foodtype: le type d’alimentation (catégoriel)

Nettoyer ses données

Attention, utilisateurs de tableurs, cette diapo est pour vous…

Si vous avez des difficultés à lire votre tableau des données, c’est sans doute parce que celui-ci n’est pas un tableau de données brutes.

Pour lire un tableau de données sous R, il convient d’abord de nettoyer ce tableau:

  • Vérifier que les noms de colonnes ne contiennent pas de caractères spéciaux ou des espaces, avoir des noms de variables courts mais explicites
  • Vérifier si certains champs correspondent en fait à des commentaires, si votre tableur contient des graphiques, etc..

Ceci n’est pas de la donnée brute!

Tidy data