Chapitre 4 Imports

L’importation des données est l’une des premières étapes dans toute analyse de données avec R. R propose plusieurs méthodes pour charger vos fichiers dans l’environnement de travail, allant de l’interface graphique à l’utilisation de fonctions programmatiques. Nous allons voir les différentes options disponibles.

En Excel, l’équivalent d’un import correspond simplement à l’ouverture du fichier.

4.1 Importation via l’interface graphique de RStudio

RStudio facilite l’importation de données grâce à un bouton intuitif :

Bouton “Import Dataset” :

  • Dans la fenêtre “Environment”, cliquez sur le bouton Import Dataset.
  • Vous aurez alors la possibilité de choisir l’origine de vos données : un fichier CSV, Excel, ou d’autres formats courants.
  • Une fois le fichier sélectionné, RStudio vous affiche un aperçu des données et génère automatiquement le code R correspondant pour l’importation.
  • Ce code est un excellent point de départ si vous préférez explorer le code manuellement ou automatiser l’importation à l’avenir.

Cette approche est particulièrement utile pour les débutants ou pour explorer des jeux de données sans avoir à écrire immédiatement du code.

4.2 Importation via le code

Bien que l’interface graphique soit pratique, l’importation via le code offre plus de flexibilité, notamment pour automatiser l’analyse de plusieurs fichiers ou pour personnaliser le processus de chargement. Nous allons voir différentes méthodes pour importer des fichiers courants comme les fichiers CSV et Excel.

4.2.1 Importer des fichiers CSV avec read.csv()

Le format CSV (Comma-Separated Values) est l’un des formats les plus couramment utilisés pour stocker des données tabulaires. En R, la fonction read.csv() permet d’importer facilement ces fichiers.

# Importer un fichier CSV
data <- read.csv("data/species.csv")

# Aperçu des premières lignes du fichier importé
head(data)
##   species_code   taxocode         scientific_name        english_name french_name spanish_name
## 1          YCL 1400100101     Cycleptus elongatus         Blue sucker                         
## 2          DEU 1400100201       Deltistes luxatus   Lost River sucker                         
## 3          ATC 1400100401   Catostomus catostomus     Longnose sucker                         
## 4          ATO 1400100402   Catostomus commersoni        White sucker                         
## 5          ATS 1400100403   Catostomus latipinnis Flannelmouth sucker                         
## 6          ATU 1400100404 Catostomus macrocheilus   Largescale sucker                         
##   arabic_name chinese_name russian_name              author       family         order stats_data
## 1                                            (Lesueur 1817) Catostomidae Cypriniformes         No
## 2                                               (Cope 1879) Catostomidae Cypriniformes         No
## 3                                            (Forster 1773) Catostomidae Cypriniformes         No
## 4                                           (Lacépède 1803) Catostomidae Cypriniformes         No
## 5                                       Baird & Girard 1853 Catostomidae Cypriniformes         No
## 6                                               Girard 1856 Catostomidae Cypriniformes         No
##   isscaap_code                   isscaap_group_en                      isscaap_group_fr
## 1           11 Carps, barbels and other cyprinids Carpes, barbeaux et autres cyprinidés
## 2           11 Carps, barbels and other cyprinids Carpes, barbeaux et autres cyprinidés
## 3           11 Carps, barbels and other cyprinids Carpes, barbeaux et autres cyprinidés
## 4           11 Carps, barbels and other cyprinids Carpes, barbeaux et autres cyprinidés
## 5           11 Carps, barbels and other cyprinids Carpes, barbeaux et autres cyprinidés
## 6           11 Carps, barbels and other cyprinids Carpes, barbeaux et autres cyprinidés
##                    isscaap_group_es isscaap_division_code isscaap_division_en  isscaap_division_fr
## 1 Carpas, barbos y otros ciprínidos                     1   Freshwater fishes Poissons d'eau douce
## 2 Carpas, barbos y otros ciprínidos                     1   Freshwater fishes Poissons d'eau douce
## 3 Carpas, barbos y otros ciprínidos                     1   Freshwater fishes Poissons d'eau douce
## 4 Carpas, barbos y otros ciprínidos                     1   Freshwater fishes Poissons d'eau douce
## 5 Carpas, barbos y otros ciprínidos                     1   Freshwater fishes Poissons d'eau douce
## 6 Carpas, barbos y otros ciprínidos                     1   Freshwater fishes Poissons d'eau douce
##   isscaap_division_es
## 1 Peces de agua dulce
## 2 Peces de agua dulce
## 3 Peces de agua dulce
## 4 Peces de agua dulce
## 5 Peces de agua dulce
## 6 Peces de agua dulce

Cette fonction est simple à utiliser, mais elle peut devenir lente pour des fichiers très volumineux. Il existe des alternatives plus performantes pour de grands ensembles de données.

4.2.2 Importer des fichiers Excel avec read.xlsx()

Les fichiers Excel sont également très utilisés pour stocker des données. En R, le package openxlsx permet d’importer des feuilles de calcul Excel via la fonction read.xlsx().

# Charger le package openxlsx (installation si nécessaire)
if (!requireNamespace("openxlsx", quietly = TRUE)) {
    install.packages("openxlsx")
}
library(openxlsx)

# Importer un fichier Excel
data <- read.xlsx("data/biefree.xlsx", sheet = 1)

# Aperçu des premières lignes du fichier importé
head(data)
##                Damijo     Dacess Idbie                                                                Nom
## 1 2018-05-17T20:09:05       <NA>     1                                                     OXFENIL 9.06 %
## 2 2023-08-12T17:38:06 2020-01-01    10                                                          MUCOBOVIN
## 3 2016-05-30T22:38:30 2015-01-01    11                                                              ENZEC
## 4 2023-08-07T19:24:52       <NA>    12 DECTOMAX 10 MG/ML SOLUTION INJECTABLE POUR BOVINS OVINS ET PORCINS
## 5 2023-09-15T13:52:57       <NA>    13                      CYDECTINE 1 % SOLUTION INJECTABLE POUR BOVINS
## 6 2023-09-15T13:57:48       <NA>    14                                                 NEMISOL INJECTABLE
##   Fabricant                      Categorie              Especes                 Amm   Atcvet  Snomed
## 1    VIRBAC Médicament à usage vétérinaire               bovins FR/V/7749035 7/1997 QP52AC02    <NA>
## 2    MERIAL Médicament à usage vétérinaire               bovins FR/V/6537182 8/1994 QI02AD02    <NA>
## 3    MERIAL Médicament à usage vétérinaire               bovins                <NA>     <NA>    <NA>
## 4    ZOETIS Médicament à usage vétérinaire bovins;ovins;porcins FR/V/4335418 4/2012 QP54AA03 C-56B6A
## 5    ZOETIS Médicament à usage vétérinaire               bovins FR/V/6245161 9/1994 QP54AB02 C-56B68
## 6 COOPHAVET Médicament à usage vétérinaire bovins;ovins;porcins FR/V/5424399 0/1983 QP52AE01 C-56A96
##        Snomedct                                                        Gtin
## 1          <NA> 03597132215107;03597132215084;03597132215091;03597132213288
## 2          <NA>                                              03661103000938
## 3          <NA>                                                        <NA>
## 4 5311000009109                05414736022406;05414736022413;05414736022420
## 5     781257003                08714015010221;08714015010214;08714015010238
## 6     387296006                                              03660144077398
##                                                                              Cip7 Code
## 1 6763472;6763489;6763495;6763503;6763526;6763532;6763549;6763555;6763561;6763578 <NA>
## 2         6731756;6731762;6731779;6731785;6731791;6731816;6731822;6731839;6731845 <NA>
## 3                                                         6732394;6732402;6732419 <NA>
## 4                                                                            <NA> <NA>
## 5                                                         6732595;6732603;6732626 <NA>
## 6                                                                 6732939;6735665 <NA>

La fonction read.xlsx() vous permet également de spécifier la feuille Excel à importer, ce qui est pratique si votre fichier contient plusieurs feuilles.

4.2.3 Importer des fichiers CSV avec fread() (rapide et efficace)

Pour des fichiers CSV volumineux, la fonction fread() du package data.table est une alternative très performante à read.csv(). Elle est optimisée pour traiter rapidement de grandes quantités de données.

# Charger le package data.table (installation si nécessaire)
if (!requireNamespace("data.table", quietly = TRUE)) {
    install.packages("data.table")
}
library(data.table)

# Importer un fichier CSV avec fread (plus rapide que read.csv)
data <- fread("data/species.csv")

# Aperçu des premières lignes du fichier importé
head(data)
##    species_code   taxocode         scientific_name        english_name french_name spanish_name
## 1:          YCL 1400100101     Cycleptus elongatus         Blue sucker                         
## 2:          DEU 1400100201       Deltistes luxatus   Lost River sucker                         
## 3:          ATC 1400100401   Catostomus catostomus     Longnose sucker                         
## 4:          ATO 1400100402   Catostomus commersoni        White sucker                         
## 5:          ATS 1400100403   Catostomus latipinnis Flannelmouth sucker                         
## 6:          ATU 1400100404 Catostomus macrocheilus   Largescale sucker                         
##    arabic_name chinese_name russian_name              author       family         order stats_data
## 1:                                            (Lesueur 1817) Catostomidae Cypriniformes         No
## 2:                                               (Cope 1879) Catostomidae Cypriniformes         No
## 3:                                            (Forster 1773) Catostomidae Cypriniformes         No
## 4:                                           (Lacépède 1803) Catostomidae Cypriniformes         No
## 5:                                       Baird & Girard 1853 Catostomidae Cypriniformes         No
## 6:                                               Girard 1856 Catostomidae Cypriniformes         No
##    isscaap_code                   isscaap_group_en                      isscaap_group_fr
## 1:           11 Carps, barbels and other cyprinids Carpes, barbeaux et autres cyprinidés
## 2:           11 Carps, barbels and other cyprinids Carpes, barbeaux et autres cyprinidés
## 3:           11 Carps, barbels and other cyprinids Carpes, barbeaux et autres cyprinidés
## 4:           11 Carps, barbels and other cyprinids Carpes, barbeaux et autres cyprinidés
## 5:           11 Carps, barbels and other cyprinids Carpes, barbeaux et autres cyprinidés
## 6:           11 Carps, barbels and other cyprinids Carpes, barbeaux et autres cyprinidés
##                     isscaap_group_es isscaap_division_code isscaap_division_en  isscaap_division_fr
## 1: Carpas, barbos y otros ciprínidos                     1   Freshwater fishes Poissons d'eau douce
## 2: Carpas, barbos y otros ciprínidos                     1   Freshwater fishes Poissons d'eau douce
## 3: Carpas, barbos y otros ciprínidos                     1   Freshwater fishes Poissons d'eau douce
## 4: Carpas, barbos y otros ciprínidos                     1   Freshwater fishes Poissons d'eau douce
## 5: Carpas, barbos y otros ciprínidos                     1   Freshwater fishes Poissons d'eau douce
## 6: Carpas, barbos y otros ciprínidos                     1   Freshwater fishes Poissons d'eau douce
##    isscaap_division_es
## 1: Peces de agua dulce
## 2: Peces de agua dulce
## 3: Peces de agua dulce
## 4: Peces de agua dulce
## 5: Peces de agua dulce
## 6: Peces de agua dulce

4.3 Comparaison des méthodes

  • read.csv() : Simple et facile à utiliser, mais peut être lent pour de grands fichiers.
  • read.xlsx() : Idéal pour importer des fichiers Excel avec des options pour sélectionner des feuilles spécifiques.
  • fread() : Recommandé pour les fichiers CSV volumineux en raison de sa rapidité et de son efficacité.

Voici un résumé rapide de ces méthodes en fonction de vos besoins :

Méthode Format Rapidité Utilisation
read.csv() CSV Moyenne Fichiers CSV de taille modérée
read.xlsx() Excel Moyenne Fichiers Excel avec plusieurs feuilles
fread() CSV Très rapide Fichiers CSV volumineux

En fonction de vos données et de vos besoins en performance, vous pouvez choisir la méthode la plus appropriée. N’oubliez pas que les packages doivent être installés et chargés pour pouvoir utiliser ces fonctions.

4.4 Exercice

Importez pour le millésime 2023 le fichier des demandes de valeurs foncières (DVF). Combien de transactions contient le fichier ?