2 min read

Importer un fichier CSV

Le CSV

CSV signifie Comma separated value.

Couramment utilisé pour de l’import/export de données , par exemple vos contacts de votre téléphone, ou pour alimenter un ActivDirectory.

Les fichiers CSV , sont de simples fichiers texte permettant de contenir des données sous un format rustique, ceux sont des données dites tabulaires, symbolisant un tableau formé de lignes et de colonnes .

Généralement composé d’une première ligne contenant les en-têtes des colonnes, comme ceci:

“Date”;“Prix”;“Station” , ce sont les variables .

On voit que les valeurs sont encadrées par des guillemets, et séparées par des point virgule. En fait ces point virgules sont des délimiteurs(semi colon en anglais). Les délimiteurs peuvent également être des virgules (comma en anglais).

Puis le fichier est alimenté de cette manière: “30/01/2021”;“1,309”;“Payot”

Commande d’import

Il existe 2 commandes read.csv() et read.csv2(), qui elles même reposent sur la commande read.table(), mais avec des valeurs par défaut.

En simplifiant

  • read.csv():si vous etes en notation anglaise, soit le point pour marquer la décimale, et la virgule comme séparateur sep = ,/dec = .
  • read.csv2(): si vous etes en notation française, soit la virgule pour marquer la décimale, et le point virgule comme séparateur sep = ;/ dec = ,
> diesel <- read.csv("/home/ordinatous/web-test/crea-test1/diesel.csv")

En réalité , j’avais oublié de mettre mon chemin entre guillemets, et je n’avais pas compris le message d’erreur.

On notera au passage , que j’ai écrit le chemin absolu , mais on peut également le répertoire de travail avec setwd(), wd pour working directory.

J’avais un doute quant à l’utilisation du tiddle , mais étant sous linux il semble que Rstudio reconnait parfaitement ce caractère: ~.

J’ai alors utilisé l’import en mode graphique, qui est vraiment bien fait , avec une console de prévisualisation du code , code qui se modifie en fonction des modifications apportées, normale …. bref, on peut modifier les locales, le séparateur , la décimale ainsi que le format de la date.

Détail de la commande d’import

library(readr)
diesel <- read_delim("diesel.csv", delim = ";", 
    escape_double = FALSE, col_types = cols(Date = col_date(format = "%d/%m/%Y"), 
        Prix = col_number()), locale = locale(date_names = "fr", 
        decimal_mark = ","), trim_ws = TRUE)
View(diesel)

Voilà, j’ai créé un objet diesel contenant mon tableau, c’est un data.frame.

> class(diesel)
[1] "spec_tbl_df" "tbl_df"      "tbl"         "data.frame"