Cours 4 data frames
Modes ouiNumérique, caractère, complexe logique Liste list ouiNumérique,caractère,complexe logiqueSérie temporelle ts OuiNumérique,caractère,complexe logiqueData.frame NonNumérique,caractère,complexe logiqueMatrice matrix NonNumérique,caractère,complexe logiqueTableau array NonNumérique,caractèreFacteur factor NonNumérique,caractère,complexe logiqueVecteur vector Plusieurs modes Modes possibles
Les data frames (traduction: chassis, cadre) sont le « type », le format par défaut sous R, format obtenu: – par la lecture de fichiers externes – Et format obligatoire pour exporter des tableaux de R
data.frame En interne ce sont des listes, dont les champs sont des colonnes En apparence ce sont des matrices, avec comme différence essentielle que les différentes colonnes peuvent être de modes distincts:alphanumériques, booléennes, facteurs… Les lignes et les colonnes sont nommées et on peut y accéder par leur indice de position ou par leur nom… exemple: L= LETTERS[1:3]; D=data.frame(x=rep(1,10),y=1:10, fac=sample(L,10,replace=TRUE)); La troisième colonne est D[,3], ou D[,”fac”], ou D$fac x y fac C C A B A A B A B C
Fonctions pour les data frames data.frame(): names(),colnames()rownames()liste des noms de ligne et de colonnes dimnames():liste ayant 2 champs: les noms de lignes et les noms de colonne dim():liste donnant les dimensions du data frame cbind():concaténation en colonne rbind():concaténation en ligne Exemple:cbind(d,salle=rep(c(1,2),5) ) x y fac salle B A B A C C B C B A 2
La fonction data() : Cette fonction a deux effets distincts: elle permet de lister les data frame existants de lire des données internes et de les charger dans un data.frame Exemples: data() # liste des noms de tous les data frame dans le package par défaut appelé « datasets » D=data(USArrests) # charge le data frame USArrests et le place dans D data(package =.packages(all.available = TRUE))# Donne la liste de tous les data frames de tous les packages disponibles
Plus précis... help(USArrests) # donne des informations sur le data frame « USArrests », si elles existent try(data(package = "rpart") )# liste des data frame dans le package rpart
La fonction library() Traduction : bibliothèque Exemples: library():donne la liste des « packages » ou bibliothèques disponibles sur la version de R On peut en charger d’autres par le site du CRAN par exemple library(cluster);data(agriculture);permet de charger le data frame « agriculture » du package « cluster » data(agriculture, package=« cluster »); permet aussi de charger ce data frame D=data(agriculture, package=« cluster »); permet aussi de charger ce data frameet de le placer dans D
Importer des fichiers... Pour les lectures et écritures dans un répertoire,R utilise le repertoire de travail. getwd():permet de connaître ce repertoire setwd():permet de modifier le repertoire de travail exemple setwd(« c:/data ») R peut lire des données stockées dans un fichier texte (ascii):read.table(), en conservant sa structure éventuelle: la sortie est un data.frame arguments de cette fonction: file= nom du fichier sep= séparateur (espace par défaut) header= booléen (=TRUE si le nom des colonnes est en tête, FALSE sinon)
Exemple: pour importer dans l'objet F les données situées dans le fichier « fichier.txt » placé à l'adresse: « C:\ArR\fichier.txt » F=read.table(« C:\\ArR\\fichier.txt », sep=« \t»,header=TRUE); Variantes:read.csv(), read.delim(),read.fwf()… pour des fichiers dans d ’autres formats (Excell,SAS,SPSS, bases de données SQL…) Attention: ces fonctions ne sont pas toujours dans le package de base.
et les exporter Ecriture d’un fichier write.table(file=,append=,col.names=, row.names=) arguments: file= nom du fichier, adresse d'export append= booléen si TRUE ajoute au fichier existant, si FALSE ecrase le fichier existant col.names= booléen si TRUE écrit les noms de colonnes row.names= idem pour les lignes
Sauvegarder certains objets en binaire ou en ASCII et les restaurer Fonctions: dump(): sauve en ascii des objets R source():recharge les objets sauvés par dump(),par exemple un script sauvegardé sous le nom test.R sera rappelé par source(« test.R », echo=TRUE) save(): comme dump() mais en binaire load(): comme source() mais en binaire
Méthode En pratique, on pourra créer un répertoire de travail par analyse de données, et y déposer: les fichiers de données brutes le fichier script contenant les commandes R le workspace et les fichiers résultats(textes et graphiques)