Les données peuvent exister sous différents formats. Pour chaque format, R a une fonction et un argument spécifiques. Ce didacticiel explique comment importer des données dans R.
Dans ce tutoriel, vous apprendrez
- Lire CSV
- Lire les fichiers Excel
- readxl_example ()
- read_excel ()
- excel_sheets ()
- Importer des données depuis d'autres logiciels statistiques
- Lire sas
- Lire STATA
- Lire SPSS
- Meilleures pratiques pour l'importation de données
Lire CSV
Les formats de fichier .csv (valeurs séparées par des virgules) sont l'un des magasins de données les plus répandus. R charge un tableau de bibliothèques lors du démarrage, y compris le paquet utils. Ce paquet 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 :
- file : CHEMIN où le fichier est stocké
- header : confirmez si le fichier a un en-tête ou non, par défaut, l'en-tête est mis à TRUE
- sep : le symbole utilisé pour scinder 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 ''. Le PATH doit être une valeur de chaîne.
Pour les utilisateurs Mac, le chemin d'accès au 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 de 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)
Production:
## [1] 12
class(df$X)
Production:
## [1] "factor"
R, par défaut, renvoie les valeurs de caractère comme Factor. 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)
Production:
## [1] "character"
La classe de la variable X est maintenant un caractère.
Lire les fichiers Excel
Les fichiers Excel 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:
Production:
Loading required package: readxl.
Si le paquet ne se ferme pas, vous pouvez l'installer avec la bibliothèque conda 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.
Utiliser 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é pour 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 spreadsheetdf <- read_excel(example)# Count the number of columnslength(df)
Production:
## [1] 5
excel_sheets ()
Le fichier datasets.xlsx est composé de 4 feuilles. Nous pouvons savoir quelles feuilles sont disponibles dans le classeur en utilisant la fonction excel_sheets ()
example <- readxl_example("datasets.xlsx")excel_sheets(example)
Production:
[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. Nous pouvons spécifier le nom de la feuille ou l'index de la feuille. Nous pouvons vérifier si les deux fonctions retournent 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)
Production:
## [1] TRUE
Nous pouvons contrôler les cellules à lire de 2 façons
- Utilisez l'argument n_max pour renvoyer n lignes
- Utiliser l'argument de plage 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 headeriris <-read_excel(example, n_max =5, col_names =TRUE)
Si nous changeons col_names en FALSE, R crée les en-têtes automatiquement.
# Read the first five row: without headeriris_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 B5example_1 <-read_excel(example, range = "A1:B5", col_names =TRUE)dim(example_1)
Production:
## [1] 4 2
Nous pouvons voir que l'exemple_1 renvoie 4 lignes avec 2 colonnes. L'ensemble de données a un en-tête, raison pour laquelle la dimension est 4x2.
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 la même sortie que cell_rows (5: 1).
# Read rows 1 to 5example_2 <-read_excel(example, range =cell_rows(1:5),col_names =TRUE)dim(example_2)
Production:
## [1] 4 5
L'exemple_2 est cependant une matrice 4x5. L'ensemble de données iris comporte 5 colonnes avec en-tête. Nous retournons les quatre premières lignes avec l'en-tête de toutes les colonnes
Dans le cas où nous voulons 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 trame 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 Bcol <-read_excel(example, range =cell_cols("A:B"))dim(col)
Production:
## [1] 150 2
Remarque: range = cell_cols ("A: B"), renvoie 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
- is.na
Voici le code
iris_na <-read_excel(example, na ="setosa")sum(is.na(iris_na))
Production:
## [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 les logiciels SAS, STATA et SPSS. Nous pouvons utiliser la fonction suivante pour ouvrir différents types de jeux 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 avons besoin de connaître le PATH où le fichier est stocké. Voilà, 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 sur le lien ou dans le terminal conda install -c conda-forge r-Hav
Lire sas
Pour notre exemple, nous allons utiliser le jeu de données d'admission d'IDRE.
PATH_sas <- 'https://github.com/guru99-edu/R-Programming/blob/master/binary.sas7bdat?raw=true'df <- read_sas(PATH_sas)head(df)
Production:
## # A tibble: 6 x 4## ADMIT GRE GPA RANK#### 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)
Production:
## # A tibble: 6 x 4## admit gre gpa rank#### 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)
Production:
## # A tibble: 6 x 4## admit gre gpa rank#### 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 voulons 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 à interpréter comme une variable distincte. Sinon, préférez utiliser «_» ou «-».
- Les noms courts sont préférés
- N'incluez pas de symbole dans le nom: c'est-à-dire: exchange_rate _ $ _ € n'est pas correct. Préférez le nommer: exchange_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 colonne 1 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 |
read.csv () |
fichier, en-tête =, TRUE, sep = "," |
readxl |
Lire le fichier EXCEL |
read_excel () |
chemin, plage = NULL, col_names = TRUE |
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 |
Objectifs |
Arguments |
---|---|---|
read_excel () |
Lire n nombre de lignes |
n_max = 10 |
Sélectionnez des lignes et des colonnes comme dans Excel |
range = "A1: D10" |
|
Sélectionnez des lignes avec des index |
range = cell_rows (1: 3) |
|
Sélectionnez des colonnes avec des lettres |
range = cell_cols ("A: C") |