Gestion des données avec R Christophe Lalanne & Bruno Falissard Table des matiè
Gestion des données avec R Christophe Lalanne & Bruno Falissard Table des matières 1 Introduction 1 2 Importation de fichiers CSV 1 2.1 Structure du fichier de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 2.2 Le concept data frame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.3 Indexation d’éléments dans un data frame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 3 Autres sources de données 8 3.1 Fichier binaire RData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 3.2 Fichier SPSS et Stata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 3.3 Base de données relationnelles et autres formats . . . . . . . . . . . . . . . . . . . . . . . . . . 9 4 Techniques plus avancées 9 1 Introduction La gestion des données sous R n’est pas aussi évidente qu’il n’y paraît au premier abord. C’est essentiellement dû au fait que l’on ne “voit pas” les données comme sur un tableur de type Excel. Toutefois, R offre des outils puissants de recodage des variables et de reformatage des tableaux de données, et permet de lire quasiment tous les formats de fichiers de données utilisés dans le domaine statistique. 2 Importation de fichiers CSV 2.1 Structure du fichier de données Considérons le fichier de données smp2.csv qui regroupe les données sur l’étude de santé mentale en prison. Ce fichier comporte 26 variables et 799 observations (individus ou unités statistiques). Il s’agit d’un fichier de type CSV (comma separated values) que l’on peut ouvrir avec un tableur de type Excel ou n’importe quel éditeur de texte. Souvent d’ailleurs, lorsque l’on double-clique sur un fichier portant cette extension (.csv), c’est l’application Excel (ou Open Office, par exemple) qui est proposée pour lire ce fichier. Voici à quoi ressemble ce fichier en mode texte : Ce fichier est structuré de la manière suivante : sur la première ligne figure le nom des variables. Les données de chaque individu pour chacune de ces variables sont reportées sur une ligne séparée. Les données (nom de variable sur la première ligne, ou valeur prise par une variable pour un individu sur les lignes suivantes), appelé “champ”, sont séparées par un même symbole, appelé séparateur de champ, ici un point-virgule. D’autres séparateurs de champ peuvent être utilisés, par exemple des virgules, des taquets de tabulation ou de simples espaces. 1 FIGURE 1 – Contenu du fichier smp2.csv en vue texte 2 Le séparateur décimal quant à lui permet d’indiquer à R comment sont représentés les nombres à virgules. Par défaut, R utilise la notation anglo-saxonne (le séparateur décimal est alors un point, par exemple 9.2), sauf dans le cas de la commande read.csv2() où l’on considère que le séparateur décimal suit la notation française (une virgule, comme dans 9,2). Évidemment, il y a des situations impossibles : utiliser comme séparateur de champs des virgules imposera le point comme séparateur décimal, autrement R n’a aucun moyen d’identifier correctement le nombre de champs présents sur chaque ligne du fichier. Si aucune ligne d’en-tête n’est présente, il faudra préciser l’option header = FALSE, et éventuellement fournir le nom des variables sous forme de liste via l’option col.names =. Cela dit il est tout aussi simple d’utiliser la commande colnames() après avoir importé le fichier. Pour importer des fichiers CSV sous R, on utilise la commande read.csv() ou read.csv2(), qui reposent en fait sur la commande read.table(), mais avec des options par défaut : sep = ;/dec = , dans le cas de read.csv2(), et sep = ,/dec = . dans le cas de read.csv(). Dans tous les cas, on suppose que header = TRUE, c’est-à-dire que le fichier comporte bien une ligne d’en-tête. Avant d’importer un fichier, il faut s’assurer que R connaît l’endroit où ce fichier a été enregistré. Pour cela, deux solutions : soit l’on indique le chemin d’accès complet au fichier, soit on change le répertoire de travail courant pour indiquer le répertoire dans lequel le fichier a été enregistré. Dans le premier cas, on aura donc une instruction du style : smp <- read.csv2("/Users/chl/mooc/smp2.csv") qui signifie que sur un Mac, le fichier smp2.csv se trouve dans le sous-répertoire mooc du répertoire Documents du compte utilisateur. Sous Windows, on utilisera par exemple C:/utilisateur/chl/mooc/smp2.csv. Dans le second cas, on utilisera soit la commande setwd() pour définir le répertoire de travail, soit le menu disponible dans le gestionnaire de fichiers de RStudio, comme l’illustre la figure suivante. FIGURE 2 – Définir le répertoire courant comme répertoire de travail En supposant que le répertoire de travail ait correctement été indiqué, voici comment l’on peut charger les données smp2.csv : smp <- read.csv2("smp2.csv") Concernant la structure du fichier de données une fois qu’il a été importé, il est conseillé de taper systématiquement ces 3 commandes qui permettent de vérifier la taille du tableau de données (nombre de lignes et nombre de colonnes, correspondant, respectivement, au nombre d’individus et de variables), le nom des variables (ce qui permet, entre autres, de s’assurer que la ligne d’en-tête a bien été lue correctement), et le type de représentation des variables (int ou double pour les variables numériques, char ou factor pour les variables qualitatives). Voici ce que donnent ces commandes pour le fichier smp2.csv. 3 dim(smp) ## [1] 799 26 names(smp) ## [1] "age" "prof" "duree" "discip" ## [5] "n.enfant" "n.fratrie" "ecole" "separation" ## [9] "juge.enfant" "place" "abus" "grav.cons" ## [13] "dep.cons" "ago.cons" "ptsd.cons" "alc.cons" ## [17] "subst.cons" "scz.cons" "char" "rs" ## [21] "ed" "dr" "suicide.s" "suicide.hr" ## [25] "suicide.past" "dur.interv" str(smp) ## 'data.frame': 799 obs. of 26 variables: ## $ age : int 31 49 50 47 23 34 24 52 42 45 ... ## $ prof : Factor w/ 8 levels "agriculteur",..: 3 NA 7 6 8 6 3 2 6 6 ... ## $ duree : int 4 NA 5 NA 4 NA NA 5 4 NA ... ## $ discip : int 0 0 0 0 1 0 0 0 1 0 ... ## $ n.enfant : int 2 7 2 0 1 3 5 2 1 2 ... ## $ n.fratrie : int 4 3 2 6 6 2 3 9 12 5 ... ## $ ecole : int 1 2 2 1 1 2 1 2 1 2 ... ## $ separation : int 0 1 0 1 1 0 1 0 1 0 ... ## $ juge.enfant : int 0 0 0 0 NA 0 1 0 1 0 ... ## $ place : int 0 0 0 1 1 0 1 0 0 0 ... ## $ abus : int 0 0 0 0 0 0 0 0 1 1 ... ## $ grav.cons : int 1 2 2 1 2 1 5 1 5 5 ... ## $ dep.cons : int 0 0 0 0 1 0 1 0 1 0 ... ## $ ago.cons : int 1 0 0 0 0 0 0 0 0 0 ... ## $ ptsd.cons : int 0 0 0 0 0 0 0 0 0 0 ... ## $ alc.cons : int 0 0 0 0 0 0 0 0 1 1 ... ## $ subst.cons : int 0 0 0 0 0 0 1 0 1 0 ... ## $ scz.cons : int 0 0 0 0 0 0 0 0 0 0 ... ## $ char : int 1 1 1 1 1 1 1 1 4 1 ... ## $ rs : int 2 2 2 2 2 1 3 2 3 2 ... ## $ ed : int 1 2 3 2 2 2 3 2 3 2 ... ## $ dr : int 1 1 2 2 2 1 2 2 1 2 ... ## $ suicide.s : int 0 0 0 1 0 0 3 0 4 0 ... ## $ suicide.hr : int 0 0 0 0 0 0 1 0 1 0 ... ## $ suicide.past: int 0 0 0 0 1 0 1 0 1 0 ... ## $ dur.interv : int NA 70 NA 105 NA NA 105 84 78 60 ... XLS uploads/Industriel/data-management-pdf.pdf
Documents similaires










-
21
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Jui 14, 2021
- Catégorie Industry / Industr...
- Langue French
- Taille du fichier 0.2284MB