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)

Documents pareils