Cours 3 data frames
Transcription
Cours 3 data frames
Cours 3 data frames – C’est le type par défaut résultant de la lecture de fichiers externes et nécéssaire pour exporter des tableaux de R Modes Modes possibles Plusieurs modes Vecteur vector Numérique,caractère,complexe logique Non Facteur factor Numérique,caractère Non Tableau array Numérique,caractère,complexe logique Non Matrice matrix Numérique,caractère,complexe logique Non Data.frame Numérique,caractère,complexe logique Oui Série temporelle ts Numérique,caractère,complexe logique oui Liste list Numérique, caractère, complexe logique oui 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=sam ple(L,10, repl=TRUE)); La troisième colonne est D[,3] ou D[, “fac”]ou D$fac 1 2 3 4 5 6 7 8 9 10 x y 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 1 10 fac C C A B A A B A B C Fonctions pour les data frames 1 2 3 4 5 6 7 8 9 10 x y 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 1 10 fac B A B A C C B C B A salle 1 2 1 2 1 2 1 2 1 2 • data.frame(): • names(),colnames()liste des noms de colonnes • rownames()liste des noms de ligne • dimnames():liste ayant 2 champs: les noms de lignes et les noms de colonne • cbind():concaténation en colonne • rbind():concaténation en ligne Exemple: cbind(D,salle=rep(c(1,2),5)) La fonction data() : • Cette fonction permet de lire des données internes un data.frame ou de lister les data frame existants Exemples: data() # liste de tous les data frame dans le package par défaut « datasets » data(USArrests) # charge le data frame USArrests help(USArrests) # donne des informations sur le data frame « USArrests », si elles existent data(package = .packages(all.available = TRUE))# Donne la liste de tous les data frames de tous les packages disponibles try(data(package = "rpart") )# liste des data frame dans le package rpart La fonction library() Exemples: library():donne la liste des packages disponibles On peut en charger d’autres par le 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 Pour avoir une description du data frame obtenu ● ● ● ● ● data(mtcars); ?mtcars ouvre une page d'aide str(mtcars) donne les informations de base, à savoir mode, nombre de variables, noms des variables, mode de ces variables, dim(mtcars) nombre de lignes et de colonnes dimnames(mtcars) nom des variables Importer des fichiers • Pour les lectures et écritures dans un fichier,R utilise le repertoire de travail. • getwd():permet de connaître ce repertoire exemple • 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() 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) file.choose() read.table(file=,sep=,header=) Exemple: fichier C:/ArR/fic.txt F=read.table(« C:\\ArR\\fic.txt », sep=« \t»,header=TRUE); •Variantes: read.xls() pour la lecture de fichiers excell, read.csv(), read.delim(),read.fwf()…pour des fichiers dans d ’autres formats(Excell,SAS,SPSS), bases de données SQL… •data=read.csv(file=file.choose()) permet de choisir le fichier à lire en explorant le contenu de l'ordinateur à l'aide d'une boite de dialogue •les fonctions ne sont pas toujours dans le package base,voir la bibliothèque foreign pour plus de fonctions d'import et exporter • Ecriture d’un fichier write.table() • write.table(x, file = "", append = FALSE, quote = TRUE, sep = " ",...) arguments: x nom du data frame file= nom du fichier append= booléen si TRUE ajoute au fichier existant, si FALSE écrase le fichier existant col.names= booléen si TRUE écrit les noms de colonnes row.names= idem pour les lignes • Variantes write.xls() pour l'écriture au format excell... 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 En pratique, on pourra créer un repertoire 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) Les statistiques avec R Lois de probabilité, distributions • On peut évaluer les quantités suivantes: Fonctions de répartition Densité Quantiles • Les fonctions ont le même nom avec des préfixes différents r: donne des échantillons (déjà vu) d: donne les valeurs des probabilités P(X=j)(loi de probabilité) p: donne les valeurs des probabilités P(X<=x)(fonction de répartition) q: donne la valeur y telle que P(X<= x)=y (quantiles) • Exemples: dnorm(),pnorm(),qnorm(),rnorm():loi normale dbinom(),pbinom(),qbinom(),rbinom():loi binomiale dt(),pt(),qt(),rt():loi de Student dpois(), ppois(), qpois(), tpois():loi de Poisson … exemples dbinom(k, n, p) donne la valeur loi B(n,p),c’est-à-dire Exemple: dbinom(3,10,0.2) P(X=k) sachant que X suit une 0.2013266 rbinom(10,n,p) donne un échantillon de taille 10 extrait d’une population suivant une loi B(n,p): Exemple: rbinom(10,10,0.2) [1] 5 2 3 2 4 0 4 2 0 2 pbinom(k,n,p) donne P(X<=k) sachant que X suit une loi B(n,p),c’est-à-dire la valeur de la fonction de distribution F(k) Exemples: pbinom(3,10,0.2); 0.8791261 pbinom(1:10,10,0.2) ; [1] 0.1073742 0.3758096 0.6777995 0.8791261 0.9672065 0.9936306 0.9991356 0.9999221 0.9999958 1.0000000 0 2 4 6 c(-1, x) 8 10 0.0 0.2 0.4 c(0, z) 0.6 0.8 1.0 qbinom(q,n,p) est le quantile , c’est-à-dire la plus petite valeur x telle que F(x)=P(X<=x)>=q. Exemples: qbinom(0.5,10,0.2) ; [1] 2 qchisq(.1,df=8) est le premier décile deX^2(8) Fonction de répartition de la loi binomiale de paramètres 10 et 0,2 0.6 0.4 0.2 0.0 c(0, z) 0.8 1.0 ● 0 2 4 6 c(-1, x) 8 10 Exemple d'une loi continue: la loi normale qnorm(0.2) [1] -0.8416212 0.6 0.4 0.2 0.0 pnorm(x) 0.8 1.0 ● 0 5 x 10 Analyse de données ● On distinguera des données Quantitatives ou qualitatives, discrètes (binaires,...)ou continues... ● Des résumés numériques ou graphiques Les résumés numériques pour calculer des statistiques sur un échantillon numérique ● Moyenne arithmétique mean() ● Médiane d'un échantillon median() ● Minimum, maximum min(), max() ● Calcul des percentiles quantile() ● Variance var() ● Écart-type sd() ● Covariance, coefficient de corrélation cov(),cor() ● Résumé statistique summary() Distribution d’un ensemble d’observations si v est un ensemble d’observations • table(v): compte les fréquences des éléments de v • summary(v): renvoie un résumé statistique du contenu de v,avec le min 1er quartile, moyenne, médiane,3iemme quartile et max • quantile(v): renvoie les quantiles correspondant au vecteur de probabilité donné. Par défaut renvoie les quartiles • Moins utilisées stem():arbre qqplot(x,y):trace les quantiles de x /quantiles de y exemple > x=sample(1:50,20) > summary(x) Min. 1st Qu. Qu. Max. 5.00 42.00 16.50 50.00 > summary(x)[2] 1st Qu. 16.5 Median 28.00 Mean 3rd 28.95 Les résumés graphiques ● Pour des données discrètes ou catégorielles Diagramme en batons: barplot() Cette fonction prend comme argument un objet résultat de la fonction table() ● pour des données continues, hist(), boxplot() barplot() ● ● ● Ni = rpois(100,lambda=5) N=table(Ni) r=barplot(N,col=rainbow (20));r [,1] ● ● [1,] 0.7 ● [2,] 1.9 ● [3,] 3.1 ● [4,] 4.3 ● [5,].... hist(x,breaks= « Sturges »,prob=FALSE) ● ● x un vecteur de valeurs pour lequel on souhaite un histogramme breaks:soit -un vecteur chaine de caractère donnant un algorithme pour calculer le nombre d'intervalles -un nombre donnant le nombre d'intervalles ● ● prob=FALSE:fréquences prob=TRUE: fréquences relatives ou probabilités Représentation de données discrètes: tracés d'histogrammes La fonction hist() Exemple: v=rbinom(1000,10,0.4) table(v); v 0 1 2 3 4 5 6 7 8 4 44 110 215 253 194 125 42 13 hist(v); puis hist(v,breaks=15, prob=TRUE,col=1:16, main="loi binomiale de param 10 et 0.4") 0.0 0.1 0.2 0.3 0.4 0.5 Density loi binomiale de param 10 et 0.4 0 2 4 v 6 8 Analyse multivariée exemples ● ● Cas de deux données continues(x et y): plot(x,y) Un cas mixte, une donnée continue, une donnée discrète, barplot() boxplot():boites à moustaches boxplot(len ~ dose, data = ToothGrowth) Guinea Pigs' Tooth Growth 35 len supp dose 1 4.2 VC 0.5 30 2 11.5 VC 0.5 7 11.2 VC 0.5 8 11.2 VC 0.5 20 15 10 6 10.0 VC 0.5 5 5 6.4 VC 0.5 tooth length 4 5.8 VC 0.5 25 3 7.3 VC 0.5 0 9 5.2 VC 0.5 10 7.0 VC 0.5 ... 0.5 1 Vitamin C dose mg 2 pairs(): plusieurs nuages, tous les nuages possible sur toutes les colonnes possible du data frame pairs(iris[1:4], pch = 21, bg = c("red", "green3", "blue")[unclass(iris$Species)]) iris Sepal.Length Sepal.Width Petal.Length Petal.Width Species 1 5.1 3.5 1.4 0.2 setosa 2 4.9 3.0 1.4 0.2 setosa 3 4.7 3.2 1.3 0.2 setosa 4 4.6 3.1 1.5 0.2 setosa 5 5.0 3.6 1.4 0.2 setosa 6 5.4 3.9 1.7 0.4 setosa Anderson's Iris Data -- 3 species 3.0 4.0 0.5 1.5 2.5 7.5 2.0 4.0 4.5 6.0 Sepal.Length 5 7 2.0 3.0 Sepal.Width 1.5 2.5 1 3 Petal.Length 0.5 Petal.Width 4.5 5.5 6.5 7.5 1 2 3 4 5 6 7 exemples essai=sample(1:20,200,replace=TRUE) ● ● ● ● stem(essai) ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● 1 | 0000000000000000 1| 2 | 0000000000000000000000000 2| 3 | 00000000000000000000000 3| 4 | 0000000000000000 4| 5 | 00000000000000000000 5| 6 | 000000000000000000000 6| 7 | 00000000000000000 7| 8 | 00000000000000000000000000 8| 9 | 00000000000000000 9| 10 | 0000000000000000000 Pour sauvegarder des graphiques Il faut: ● ● ● Choisir un format d'exportation (png, eps,pdf... Encadrer les commandes graphiques par un appel à pdf() et dev.off() (dans le cas d'un graphique sauvegardé au format pdf) Pour plus d'informations, ?Devices 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)