Importer des données dans R : lire des fichiers CSV, Excel, SPSS, Stata, SAS
Les données peuvent exister sous différents formats. Pour chaque format R a une fonction et un argument spécifiques. Ce tutoriel explique comment importer des données vers R.
Lire le fichier CSV
L'un des magasins de données les plus répandus est le format de fichier .csv (valeurs séparées par des virgules). R charge un tableau de bibliothèques lors du démarrage, y compris le package utils. Ce package est pratique pour ouvrir des fichiers csv combinés avec la fonction Reading.csv(). Voici la syntaxe de read.csv
read.csv(file, header = TRUE, sep = ",")
Argument:
- filet: CHEMIN où le fichier est stocké
- entête: confirme si le fichier a un en-tête ou non, par défaut, l'en-tête est défini sur TRUE
- sep: le symbole utilisé pour diviser la variable. Par défaut, `,`.
Nous lirons le nom du fichier de données mtcats. Le fichier csv est stocké en ligne. Si votre fichier .csv est stocké localement, vous pouvez remplacer le PATH dans l'extrait de code. N'oubliez pas de l'envelopper à l'intérieur de « ». Le PATH doit être une valeur de chaîne.
Pour les utilisateurs Mac, le chemin du dossier de téléchargement est :
"/Users/USERNAME/Downloads/FILENAME.csv"
Pour l'utilisateur Windows :
"C:\Users\USERNAME\Downloads\FILENAME.csv"
Notez que nous devons toujours spécifier l’extension du nom du fichier.
- . Csv
- . Xlsx
- .SMS
- ...
PATH <- 'https://raw.githubusercontent.com/guru99-edu/R-Programming/master/mtcars.csv' df <- read.csv(PATH, header = TRUE, sep = ',') length(df)
Sortie
## [1] 12
class(df$X)
Sortie
## [1] "factor"
R, par défaut, renvoie les valeurs de caractères sous forme de facteur. Nous pouvons désactiver ce paramètre en ajoutant stringsAsFactors = FALSE.
PATH <- 'https://raw.githubusercontent.com/guru99-edu/R-Programming/master/mtcars.csv' df <-read.csv(PATH, header =TRUE, sep = ',', stringsAsFactors =FALSE) class(df$X)
Sortie
## [1] "character"
La classe de la variable X est désormais un caractère.
Lire des fichiers Excel
Excel les fichiers sont très populaires parmi les analystes de données. Les feuilles de calcul sont faciles à utiliser et flexibles. R est équipé d'une bibliothèque readxl pour importer une feuille de calcul Excel.
Utilisez ce code
require(readxl)
pour vérifier si readxl est installé sur votre machine. Si vous installez r avec r-conda-essential, la bibliothèque est déjà installée. Vous devriez voir dans la fenêtre de commande :
Sortie
Loading required package: readxl.
Si le package ne se ferme pas, vous pouvez l'installer avec le conda bibliothèque ou dans le terminal, utilisez conda install -c mittner r-readxl.
Utilisez la commande suivante pour charger la bibliothèque afin d'importer des fichiers Excel.
library(readxl)
readxl_example()
Nous utilisons les exemples inclus dans le package readxl au cours de ce tutoriel.
Utilisez le code
readxl_example()
pour voir toutes les feuilles de calcul disponibles dans la bibliothèque.
Pour vérifier l'emplacement de la feuille de calcul nommée clippy.xls, utilisez simplement
readxl_example("geometry.xls")
Si vous installez R avec conda, les feuilles de calcul se trouvent dans Anaconda3/lib/R/library/readxl/extdata/filename.xls
read_excel()
La fonction read_excel() est d'une grande utilité lorsqu'il s'agit d'ouvrir les extensions xls et xlsx.
La syntaxe est:
read_excel(PATH, sheet = NULL, range= NULL, col_names = TRUE) arguments: -PATH: Path where the excel is located -sheet: Select the sheet to import. By default, all -range: Select the range to import. By default, all non-null cells -col_names: Select the columns to import. By default, all non-null columns
Nous pouvons importer les feuilles de calcul de la bibliothèque readxl et compter le nombre de colonnes dans la première feuille.
# Store the path of `datasets.xlsx` example <- readxl_example("datasets.xlsx") # Import the spreadsheet df <- read_excel(example) # Count the number of columns length(df)
Sortie
## [1] 5
excel_sheets()
Le fichier datasets.xlsx est composé de 4 feuilles. Nous pouvons découvrir quelles feuilles sont disponibles dans le classeur en utilisant la fonction excel_sheets()
example <- readxl_example("datasets.xlsx") excel_sheets(example)
Sortie
[1] "iris" "mtcars" "chickwts" "quakes"
Si une feuille de calcul comprend plusieurs feuilles, il est facile de sélectionner une feuille particulière à l'aide des arguments de feuille. On peut préciser le nom de la feuille ou l'index de la feuille. Nous pouvons vérifier si les deux fonctions renvoient la même sortie avec identique().
example <- readxl_example("datasets.xlsx") quake <- read_excel(example, sheet = "quakes") quake_1 <-read_excel(example, sheet = 4) identical(quake, quake_1)
Sortie
## [1] TRUE
Nous pouvons contrôler quelles cellules lire de 2 manières
- Utilisez l'argument n_max pour renvoyer n lignes
- Utiliser l'argument range combiné avec cell_rows ou cell_cols
Par exemple, nous définissons n_max égal à 5 pour importer les cinq premières lignes.
# Read the first five row: with header iris <-read_excel(example, n_max =5, col_names =TRUE)
Si nous changeons col_names en FALSE, R crée automatiquement les en-têtes.
# Read the first five row: without header iris_no_header <-read_excel(example, n_max =5, col_names =FALSE)
iris_no_header
Dans la trame de données iris_no_header, R a créé cinq nouvelles variables nommées X__1, X__2, X__3, X__4 et X__5.
Nous pouvons également utiliser la plage d'arguments pour sélectionner des lignes et des colonnes dans la feuille de calcul. Dans le code ci-dessous, nous utilisons le style Excel pour sélectionner la plage A1 à B5.
# Read rows A1 to B5 example_1 <-read_excel(example, range = "A1:B5", col_names =TRUE) dim(example_1)
Sortie
## [1] 4 2
On peut voir que l'exemple_1 renvoie 4 lignes avec 2 colonnes. L'ensemble de données a un en-tête, c'est pourquoi la dimension est 4 × 2.
Dans le deuxième exemple, nous utilisons la fonction cell_rows() qui contrôle la plage de lignes à renvoyer. Si nous voulons importer les lignes 1 à 5, nous pouvons définir cell_rows(1:5). Notez que cell_rows(1:5) renvoie le même résultat que cell_rows(5:1).
# Read rows 1 to 5 example_2 <-read_excel(example, range =cell_rows(1:5),col_names =TRUE) dim(example_2)
Sortie
## [1] 4 5
L'exemple_2 est cependant une matrice 4×5. L'ensemble de données iris comporte 5 colonnes avec en-tête. Nous renvoyons les quatre premières lignes avec l'en-tête de toutes les colonnes
Si nous souhaitons importer des lignes qui ne commencent pas à la première ligne, nous devons inclure col_names = FALSE. Si nous utilisons range = cell_rows(2:5), il devient évident que notre bloc de données n'a plus d'en-tête.
iris_row_with_header <-read_excel(example, range =cell_rows(2:3), col_names=TRUE) iris_row_no_header <-read_excel(example, range =cell_rows(2:3),col_names =FALSE)
We can select the columns with the letter, like in Excel. # Select columns A and B col <-read_excel(example, range =cell_cols("A:B")) dim(col)
Sortie
## [1] 150 2
Remarque : range = cell_cols("A:B"), renvoie la sortie de toutes les cellules avec une valeur non nulle. L'ensemble de données contient 150 lignes, par conséquent read_excel() renvoie des lignes jusqu'à 150. Ceci est vérifié avec la fonction dim().
read_excel() renvoie NA lorsqu'un symbole sans valeur numérique apparaît dans la cellule. On peut compter le nombre de valeurs manquantes avec la combinaison de deux fonctions
- somme
- est.na
Voici le code
iris_na <-read_excel(example, na ="setosa") sum(is.na(iris_na))
Sortie
## [1] 50
Il nous manque 50 valeurs, qui sont les lignes appartenant à l'espèce setosa.
Importer des données depuis d'autres logiciels statistiques
Nous importerons différents formats de fichiers avec le package Heaven. Ce package prend en charge SAS, Logiciels STATA et SPSS. Nous pouvons utiliser la fonction suivante pour ouvrir différents types d'ensembles de données, selon l'extension du fichier :
- SAS : read_sas()
- STATA : read_dta() (ou read_stata(), qui sont identiques)
- SPSS : read_sav() ou read_por(). Nous devons vérifier l'extension
Un seul argument est requis dans ces fonctions. Nous devons connaître le PATH où le fichier est stocké. Ça y est, nous sommes prêts à ouvrir tous les fichiers de SAS, STATA et SPSS. Ces trois fonctions acceptent également une URL.
library(haven)
Haven est livré avec Conda R-Essential, sinon allez au lien ou dans le terminal conda install -c conda-forge r-haven
Lire SAS
Pour notre exemple, nous allons utiliser l'ensemble de données d'admission de l'IDRE.
PATH_sas <- 'https://github.com/guru99-edu/R-Programming/blob/master/binary.sas7bdat?raw=true' df <- read_sas(PATH_sas) head(df)
Sortie
## # A tibble: 6 x 4 ## ADMIT GRE GPA RANK ## <dbl> <dbl> <dbl> <dbl> ## 1 0 380 3.61 3 ## 2 1 660 3.67 3 ## 3 1 800 4.00 1 ## 4 1 640 3.19 4 ## 5 0 520 2.93 4 ## 6 1 760 3.00 2
Lire STATA
Pour les fichiers de données STATA, vous pouvez utiliser read_dta(). Nous utilisons exactement le même ensemble de données mais stockons dans un fichier .dta.
PATH_stata <- 'https://github.com/guru99-edu/R-Programming/blob/master/binary.dta?raw=true' df <- read_dta(PATH_stata) head(df)
Sortie
## # A tibble: 6 x 4 ## admit gre gpa rank ## <dbl> <dbl> <dbl> <dbl> ## 1 0 380 3.61 3 ## 2 1 660 3.67 3 ## 3 1 800 4.00 1 ## 4 1 640 3.19 4 ## 5 0 520 2.93 4 ## 6 1 760 3.00 2
Lire SPSS
Nous utilisons la fonction read_sav() pour ouvrir un fichier SPSS. L'extension de fichier « .sav »
PATH_spss <- 'https://github.com/guru99-edu/R-Programming/blob/master/binary.sav?raw=true' df <- read_sav(PATH_spss) head(df)
Sortie
## # A tibble: 6 x 4 ## admit gre gpa rank ## <dbl> <dbl> <dbl> <dbl> ## 1 0 380 3.61 3 ## 2 1 660 3.67 3 ## 3 1 800 4.00 1 ## 4 1 640 3.19 4 ## 5 0 520 2.93 4 ## 6 1 760 3.00 2
Meilleures pratiques pour l’importation de données
Lorsque nous souhaitons importer des données dans R, il est utile de mettre en œuvre la liste de contrôle suivante. Cela facilitera l’importation correcte des données dans R :
- Le format typique d'une feuille de calcul consiste à utiliser les premières lignes comme en-tête (généralement le nom des variables).
- Évitez de nommer un ensemble de données avec des espaces vides ; cela peut conduire à une interprétation comme une variable distincte. Vous pouvez également préférer utiliser « _ » ou « - ».
- Les noms courts sont préférés
- N'incluez pas de symbole dans le nom : par exemple : change_rate_$_€ n'est pas correct. Je préfère le nommer : change_rate_dollar_euro
- Sinon, utilisez NA pour les valeurs manquantes ; nous devons nettoyer le format plus tard.
Résumé
Le tableau suivant résume la fonction à utiliser pour importer différents types de fichiers dans R. La première colonne indique la bibliothèque liée à la fonction. La dernière colonne fait référence à l'argument par défaut.
Bibliothèque | Objectif | Fonction | Arguments par défaut |
---|---|---|---|
utils | Lire le fichier CSV | lire.csv() | fichier, en-tête =, VRAI, sep = "," |
lirexl | Lire le fichier EXCEL | read_excel() | chemin, plage = NULL, col_names = VRAI |
havre | Lire le fichier SAS | read_sas() | chemin |
havre | Lire le fichier STATA | read_stata() | chemin |
havre | Lire SPSS fille | read_sav() | chemin |
Le tableau suivant montre les différentes manières d'importer une sélection avec la fonction read_excel().
Fonction | Objectif | Arguments |
---|---|---|
read_excel() | Lire n nombre de lignes | n_max = 10 |
Sélectionnez les lignes et les colonnes comme dans Excel | plage = « A1 : D10 » | |
Sélectionnez des lignes avec des index | plage = cell_rows (1: 3) | |
Sélectionnez les colonnes avec des lettres | plage = cell_cols("A:C") |