Sie sind auf Seite 1von 60

Introduction au Traitement de Donnes

avec R
par Kapo Martin Coulibaly, PhD

Quest-ce que cest que R?

Logiciel Libre
Logiciel de Calculs Statistiques
Langage de Programmation
Systme d'analyse et de Manipulation de
Donnes
2

Brve Histoire de R

Cr par Ross Ihaka et Robert Gentleman

(Professeurs de Statistiques en Nouvelle


Zlande) en 1997
Largement inspir dun autre langage de
statistique appel S
De nos jours le dveloppement et la maintenance
de R sont assurs par le Core Development
Team de R

Comment Obtenir R

http://www.r-project.org/

Interface Graphique (Windows)

Caractristiques Gnrale de R

Lignes de commandes
Interface graphique limite
Les commandes sont organise par librairies
Les librairies Base, Utils, Stat,
Stat2,Graphics sont charges par dfaut
Il existe un trs grand nombre de librairies
spcialises et gratuites.
6

Format des commandes

Commande

(paramtre1=valeur,paramtre2=valeur,...)
Lassignement des valeurs se fait avec le signe
<- ou ->
Les comparaisons == pour gal, >= et <=
sont explicites
La plupart des commandes sont des fonctions
crites galement avec le langage R

Structure des Donnes

Vecteur
Matrice
Variable Multi-Dimensionnelles (Array)
Tableau de Donnes (Data Frame)
List
8

Cration de Donnes
> ### Creation de vecteur
> vect1<-c(1,4.5,9,34,4.5)
> vect1
[1] 1.0 4.5 9.0 34.0 4.5
> vect2<-5:15
> vect2
[1] 5 6 7 8 9 10 11 12 13 14 15
9

Cration de Vecteur

> vect3<-vector()
> vect3
logical(0)
> vect3[1]<-4
> vect3
[1] 4
10

Creation et Manipulation de Matrice


>#Creation de Matrice
> mat1<-matrix(c(1,2,3,10,20,30,4,5,6,40,50,60),
nrow=3,ncol=4)
> mat1
[,1] [,2] [,3] [,4]
[1,] 1 10 4 40
[2,] 2 20 5 50
[3,] 3 30 6 60
> mat1[2,2]
[1] 20
11

Creation et Manipulation de Matrice

> mat1[1,4]
[1] 40
> mat1[1,4]<-38
> mat1
[,1] [,2] [,3] [,4]
[1,] 1 10 4 38
[2,] 2 20 5 50
[3,] 3 30 6 60
12

Creation de Tableau de Donnes


> donn1<-data.frame()
> fix(donn1)
var1 var2
1 23 54
2 12 67
3 14 32
1 32 12
13

Creation de Liste de Donnes


>## Creation de listes
>A<-mat1
> L1<list("UAA",1992,5000,"Nom","banane",A)
> L1[[6]]
[,1] [,2] [,3] [,4]
[1,] 1 10 4 38
[2,] 2 20 5 50
[3,] 3 30 6 60
14

Creation de Liste
> L1
[[1]]
[1] "UAA"
[[2]]
[1] 1992
[[3]]
[1] 5000

[[5]]
[1] "banane"
[[6]]
[,1] [,2] [,3] [,4]
[1,] 1 10 4 38
[2,] 2 20 5 50
[3,] 3 30 6 60

[[4]]
[1] "Nom"

15

Importation de donnes

R Importe dautre formats de logiciels


statistiques (SPSS, SAS, )
Importe galement les fichiers texte
(ASCII) avec sparateurs
Le format ASCII est le format de choix
Limport de fichiers est la forme la plus
commune de cration de donne dans R
16

Lecture de fichiers texte

Nombreuses commandes
disponibles
Nous couvrirons 3 commandes:
- Read.table
- Read.csv
- scan
17

Read.table
Test.txt
Age Poids
12
60
14
63
18
70
10
55
5
30
8
40

Taille
155
175
165
145
110
130
18

Read.table
> df<-read.table("test.txt",sep="",header=TRUE)
> df
Age Poids Taille
1 12 60 155
2 14 63 175
3 18 70 165
4 10 55 145
5 5 30 110
6 8 40 130
19

Test2.txt
0 0
30 0.003
60 -0.02
90 -0.002
120 0.005
150 0.008
180 0.002
210 -0.008
240 -0.002
270 0.955
300 0.787
330 0.389
20

> df2<-read.table("test2.txt",header=FALSE,sep="",skip=0)
> df2[1:10,]
V1 V2
1 0 0.000
2 30 0.003
3 60 -0.020
4 90 -0.002
5 120 0.005
6 150 0.008
7 180 0.002
8 210 -0.008
9 240 -0.002
10 270 0.955

21

Commande scan

Permet de lire un vecteur ou une liste


Lit un fichier ou des entres clavier
Les donnes peuvent tre organises de
faon varie (colonnes, longue ligne )
22

Exemple de Fichiers Textes


L1.txt
UAA 10 34 UC 423 koffi kouadio 1960
L2.txt
12 45 43 23 98 7 8 6 12 87 34 56 67 54 30
12 65 43 89 7 8 90 54
23

Commande scan

> L1<-scan("L1.txt",what=character())
Read 8 items
> L1
[1] "UAA" "10"
"34"
"UC"
"423" "koffi" "kouadio" "1960"

24

Commande scan

> L2<-scan("L2.txt",what=numeric())
Read 23 items
> L2
[1] 12 45 43 23 98 7 8 6 12 87 34 56
67 54 30 12 65 43 89 7 8 90 54
25

Quelques options de scan

scan(file = "", what = double(0), n = -1, sep =


"", dec = ".", skip = 0, nlines = 0, na.strings =
"NA")

26

Exemple de Session de R

Changer de rpertoire par dfaut


- File Change Dir.
Lister les fichiers du rpertoire avec la
commande: dir()
Utiliser les commandes de lecture (read.table,
read.csv, etc) pour importer les donnes

27

Exemple de Session de R

Sauver la session
- File Save workspace
On peut sauver la liste des commandes
-File Save history
Equivalent commande des etapes
precedentes
- setwd(c:\....)
- save.image(c:\....)
28

Accder a l'aide
Aller a Help Html Help Packages

29

Accder a l'aide

30

Accder a l'aide

31

Ecrire des Fichiers


> write.table(df,file="test.txt",sep=" ")
"Age" "poids" "taille"
"1" 12 60 155
"2" 14 63 175
"3" 18 70 165
"4" 10 55 145
"5" 5 30 110
"6" 8 40 130
32

Ecrire des Fichiers

> write(A,file="test.txt",sep=" ,ncol=4)


1 2 3 10
20 30 4 5
6 38 50 60

33

Ecrire des Fichiers


> write.table(df,file="test.txt",sep="
,row.names=FALSE)
"Age" "poids" "taille"
12 60 155
14 63 175
18 70 165
10 55 145
5 30 110
8 40 130
34

35

36

Commandes Gnrales

mean(x)
sum(x)
max(x)
min(x)
rowMeans(x)
colMeans

length(x)
min(x)
sd(x)
var(x)
dim(x)
rowSums

37

Exemple (dim)

>A
[,1] [,2] [,3] [,4]
[1,] 1 10 4 38
[2,] 2 20 5 50
[3,] 3 30 6 60
> dim(A)
[1] 3 4
38

Exemple (length)

> vect2
[1] 5 6 7 8 9 10 11 12 13 14
15
> length(vect2)
[1] 11
39

Manipulation de Donnees
> ls()
[1] "A" "df" "df2" "donn1" "L1"
"vect1" "vect2"
> df
Age poids taille
1 12 60 155
2 14 63 175
3 18 70 165
4 10 55 145
5 5 30 110
6 8 40 130

"L2"

"mat1"

40

Manipulation de Donnees

> df$Age
[1] 12 14 18 10 5 8
> df[,3]
[1] 155 175 165 145 110 130
> df$
[1] 155 175 165 145 110 130
41

Manipulation de Donnees
> df[,2:3]
poids taille
1 60 155
2 63 175
3 70 165
4 55 145
5 30 110
6 40 130
42

Manipulation de Donnees
> df[,c("poids","taille")]
poids taille
1 60 155
2 63 175
3 70 165
4 55 145
5 30 110
6 40 130
43

Manipulation de Donnes

> df[1:3,]
Age poids taille
1 12 60 155
2 14 63 175
3 18 70 165
44

Manipulation de Donnees
> df[-1,]
Age poids taille
2 14 63 175
3 18 70 165
4 10 55 145
5 5 30 110
6 8 40 130
45

Manipulation de Donnees
> df[-2,]
Age poids taille
1 12 60 155
3 18 70 165
4 10 55 145
5 5 30 110
6 8 40 130
46

Manipulation de Donnees
> df[,-1]
poids taille
1 60 155
2 63 175
3 70 165
4 55 145
5 30 110
6 40 130
47

Manipulation de Donnes
> vect2
[1] 5 6 7 8 9 10 11 12 13 14 15
> vect2[4:8]
[1] 8 9 10 11 12
> vect2[-2:-4]
[1] 5 9 10 11 12 13 14 15
> which(vect2>10)
[1] 7 8 9 10 11
48

Manipulation de Donnes
> vect1
[1] 1.0 4.5 9.0 34.0 4.5
> which(vect1>10)
[1] 4
> which.max(vect1)
[1] 4
> which.min(vect1)
[1] 1
49

Manipulation de Donnes
> sort(vect1)
[1] 1.0 4.5 4.5 9.0 34.0
> rev(sort(vect1))
[1] 34.0 9.0 4.5 4.5 1.0

> 2*vect1
[1] 2 9 18 68 9
50

Manipulation de Donnes

>A
[,1] [,2] [,3] [,4]
[1,] 1 10 4 38
[2,] 2 20 5 50
[3,] 3 30 6 60

> t(A)
[,1] [,2] [,3]
[1,] 1 2 3
[2,] 10 20 30
[3,] 4 5 6
[4,] 38 50 60

51

Manipulation de Donnes
>A
[,1] [,2] [,3] [,4]
[1,] 1 10 4 38
[2,] 2 20 5 50
[3,] 3 30 6 60
> c(A)
[1] 1 2 3 10 20 30 4 5
6 38 50 60

> matrix(A,ncol=4)
[,1] [,2] [,3] [,4]
[1,] 1 10 4 38
[2,] 2 20 5 50
[3,] 3 30 6 60

52

Selection de Commandes
>A
[,1] [,2] [,3] [,4]
[1,] 1 10 4 38
[2,] 2 20 5 50
[3,] 3 30 6 60
> a1<-A[1,]; a2<-A[3,]

> cbind(a1,a2)
a1 a2
[1,] 1 3
[2,] 10 30
[3,] 4 6
[4,] 38 60
53

Selection de Commandes
> rbind(a1,a2)
[,1] [,2] [,3] [,4]
a1 1 10 4 38
a2 3 30 6 60
> seq(1,10,by=0.5)
[1] 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5
5.0 5.5 6.0 6.5 7.0 7.5 8.0 8.5 9.0
9.5 10.0
54

Selection de Commandes
> seq(1,10,length=5)
[1] 1.00 3.25 5.50 7.75 10.00
> seq(1,20,by=4)
[1] 1 5 9 13 17

55

Selection de Commandes
> seq(0,10,2)->x
> seq(0,10,2)->y
> expand.grid(x,y)
Var1 Var2
1 0 0
2 2 0
3 4 0
4 6 0

5
6
7
8
9
10
11
12
13
14
15

8 0
10 0
0 2
2 2
4 2
6 2
8 2
10 2
0 4
2 4

56

Selection de Commandes
> df
Age poids taille
1 12 60 155
2 14 63 175
3 18 70 165
4 10 55 145
5 5 30 110
6 8 40 130

> subset(df,Age>10)
Age poids taille
1 12 60 155
2 14 63 175
3 18 70 165

57

Selection de Commandes
> df
Age poids taille
1 12 60 155
2 14 63 175
3 18 70 165
4 10 55 145
5 5 30 110
6 8 40 130

> subset(df,taille > 130 & poids >


55 )
Age poids taille
1 12 60 155
2 14 63 175
3 18 70 165

58

Selection de Commandes
> df
Age poids taille
1 12 60 155
2 14 63 175
3 18 70 165
4 10 55 145
5 5 30 110
6 8 40 130

> subset(df,taille > 130 | poids > 55 )


Age poids taille
1 12 60 155
2 14 63 175
3 18 70 165
4 10 55 145

59

Selection de Commandes
> df[order(df$Age),]
Age poids taille
5 5 30 110
6 8 40 130
4 10 55 145
1 12 60 155
2 14 63 175
3 18 70 165
60