Présentation de R
R est un langage de programmation et un logiciel de calcul scientifique.
R est orienté pour l’analyse de données et pour les modèles statistiques.
R est un langage interprété ne nécessitant pas un compilateur.
R est à typage dynamique: Les variables peuvent être crées automatiquement par R lors de la première affectation.
Exercise 1
Code
# Créer les variables a, b et c
a = 10
b = 5
c = 3
# Afficher les valeurs des variables
print(a)
Code
Code
Code
# Afficher a+b
print(a+b)
Code
# Affecter 2a-b à une nouvelle variable d
d = 2*a-b
# Afficher d
print(d)
Structure des données
L’objet de base de R est le vecteur: Tout est d’abord vecteur sous R.
Vector comme objet de base
Manipulation de base
Sous R, l’objet de base de le Vecteur, c’est à dire un tableau de données de même type.
Code
# Ajoutons 7 au vecteur a
a[2] = 20
print(a)
Accéder aux éléments d’un vecteur par []
Code
Code
# Modifier (muter)
a[1] = 0
print(a)
Saisir les éléments d’un vecteur
- Uitilisation de
c (pour concatenate)
Code
# Exemple
x = c(1.50, 1.49, 1.75, 1.67, 1.90)
Fonctions usuelles
Code
# Longueur de x
length(x)
Code
Code
Code
# Multiplication par un réel
2*x
[1] 3.00 2.98 3.50 3.34 3.80
Code
Code
Fonction vectorisée
Les fonctions de base de R sont vectorisées: Pour un vecteur \(x=\left(x_1,\cdots,x_n\right)\), \(f(x)=\left(f(x_1),\cdots,f(x_n)\right)\).
Code
[1] 0.07073720 0.08070845 -0.17824606 -0.09904104 -0.32328957
Exemple de manipulation d’un jeu de données
Nous considérons le jeu de données iris déjà disponible sous R.
Code
# Afficher les premières lignes
head(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
Code
# Afficher les dimensions
dim(iris)
Code
# Nombre de lignes (individus)
nrow(iris)
Code
# Nombre de colonnes (variables)
ncol(iris)
Code
# Les noms des variables
names(iris)
[1] "Sepal.Length" "Sepal.Width" "Petal.Length" "Petal.Width" "Species"
Sélectionner des colonnes
Code
# Sélectionner la conne j
iris[,1]
[1] 5.1 4.9 4.7 4.6 5.0 5.4 4.6 5.0 4.4 4.9 5.4 4.8 4.8 4.3 5.8 5.7 5.4 5.1
[19] 5.7 5.1 5.4 5.1 4.6 5.1 4.8 5.0 5.0 5.2 5.2 4.7 4.8 5.4 5.2 5.5 4.9 5.0
[37] 5.5 4.9 4.4 5.1 5.0 4.5 4.4 5.0 5.1 4.8 5.1 4.6 5.3 5.0 7.0 6.4 6.9 5.5
[55] 6.5 5.7 6.3 4.9 6.6 5.2 5.0 5.9 6.0 6.1 5.6 6.7 5.6 5.8 6.2 5.6 5.9 6.1
[73] 6.3 6.1 6.4 6.6 6.8 6.7 6.0 5.7 5.5 5.5 5.8 6.0 5.4 6.0 6.7 6.3 5.6 5.5
[91] 5.5 6.1 5.8 5.0 5.6 5.7 5.7 6.2 5.1 5.7 6.3 5.8 7.1 6.3 6.5 7.6 4.9 7.3
[109] 6.7 7.2 6.5 6.4 6.8 5.7 5.8 6.4 6.5 7.7 7.7 6.0 6.9 5.6 7.7 6.3 6.7 7.2
[127] 6.2 6.1 6.4 7.2 7.4 7.9 6.4 6.3 6.1 7.7 6.3 6.4 6.0 6.9 6.7 6.9 5.8 6.8
[145] 6.7 6.7 6.3 6.5 6.2 5.9
Code
# On peut aussi utiliser les noms
iris[, "Sepal.Length"]
[1] 5.1 4.9 4.7 4.6 5.0 5.4 4.6 5.0 4.4 4.9 5.4 4.8 4.8 4.3 5.8 5.7 5.4 5.1
[19] 5.7 5.1 5.4 5.1 4.6 5.1 4.8 5.0 5.0 5.2 5.2 4.7 4.8 5.4 5.2 5.5 4.9 5.0
[37] 5.5 4.9 4.4 5.1 5.0 4.5 4.4 5.0 5.1 4.8 5.1 4.6 5.3 5.0 7.0 6.4 6.9 5.5
[55] 6.5 5.7 6.3 4.9 6.6 5.2 5.0 5.9 6.0 6.1 5.6 6.7 5.6 5.8 6.2 5.6 5.9 6.1
[73] 6.3 6.1 6.4 6.6 6.8 6.7 6.0 5.7 5.5 5.5 5.8 6.0 5.4 6.0 6.7 6.3 5.6 5.5
[91] 5.5 6.1 5.8 5.0 5.6 5.7 5.7 6.2 5.1 5.7 6.3 5.8 7.1 6.3 6.5 7.6 4.9 7.3
[109] 6.7 7.2 6.5 6.4 6.8 5.7 5.8 6.4 6.5 7.7 7.7 6.0 6.9 5.6 7.7 6.3 6.7 7.2
[127] 6.2 6.1 6.4 7.2 7.4 7.9 6.4 6.3 6.1 7.7 6.3 6.4 6.0 6.9 6.7 6.9 5.8 6.8
[145] 6.7 6.7 6.3 6.5 6.2 5.9
Code
# Avec $
iris$Sepal.Length
[1] 5.1 4.9 4.7 4.6 5.0 5.4 4.6 5.0 4.4 4.9 5.4 4.8 4.8 4.3 5.8 5.7 5.4 5.1
[19] 5.7 5.1 5.4 5.1 4.6 5.1 4.8 5.0 5.0 5.2 5.2 4.7 4.8 5.4 5.2 5.5 4.9 5.0
[37] 5.5 4.9 4.4 5.1 5.0 4.5 4.4 5.0 5.1 4.8 5.1 4.6 5.3 5.0 7.0 6.4 6.9 5.5
[55] 6.5 5.7 6.3 4.9 6.6 5.2 5.0 5.9 6.0 6.1 5.6 6.7 5.6 5.8 6.2 5.6 5.9 6.1
[73] 6.3 6.1 6.4 6.6 6.8 6.7 6.0 5.7 5.5 5.5 5.8 6.0 5.4 6.0 6.7 6.3 5.6 5.5
[91] 5.5 6.1 5.8 5.0 5.6 5.7 5.7 6.2 5.1 5.7 6.3 5.8 7.1 6.3 6.5 7.6 4.9 7.3
[109] 6.7 7.2 6.5 6.4 6.8 5.7 5.8 6.4 6.5 7.7 7.7 6.0 6.9 5.6 7.7 6.3 6.7 7.2
[127] 6.2 6.1 6.4 7.2 7.4 7.9 6.4 6.3 6.1 7.7 6.3 6.4 6.0 6.9 6.7 6.9 5.8 6.8
[145] 6.7 6.7 6.3 6.5 6.2 5.9
Code
# Sélectionner les colonnes 1 et 2
iris[, c(1, 2)]
Sepal.Length Sepal.Width
1 5.1 3.5
2 4.9 3.0
3 4.7 3.2
4 4.6 3.1
5 5.0 3.6
6 5.4 3.9
7 4.6 3.4
8 5.0 3.4
9 4.4 2.9
10 4.9 3.1
11 5.4 3.7
12 4.8 3.4
13 4.8 3.0
14 4.3 3.0
15 5.8 4.0
16 5.7 4.4
17 5.4 3.9
18 5.1 3.5
19 5.7 3.8
20 5.1 3.8
21 5.4 3.4
22 5.1 3.7
23 4.6 3.6
24 5.1 3.3
25 4.8 3.4
26 5.0 3.0
27 5.0 3.4
28 5.2 3.5
29 5.2 3.4
30 4.7 3.2
31 4.8 3.1
32 5.4 3.4
33 5.2 4.1
34 5.5 4.2
35 4.9 3.1
36 5.0 3.2
37 5.5 3.5
38 4.9 3.6
39 4.4 3.0
40 5.1 3.4
41 5.0 3.5
42 4.5 2.3
43 4.4 3.2
44 5.0 3.5
45 5.1 3.8
46 4.8 3.0
47 5.1 3.8
48 4.6 3.2
49 5.3 3.7
50 5.0 3.3
51 7.0 3.2
52 6.4 3.2
53 6.9 3.1
54 5.5 2.3
55 6.5 2.8
56 5.7 2.8
57 6.3 3.3
58 4.9 2.4
59 6.6 2.9
60 5.2 2.7
61 5.0 2.0
62 5.9 3.0
63 6.0 2.2
64 6.1 2.9
65 5.6 2.9
66 6.7 3.1
67 5.6 3.0
68 5.8 2.7
69 6.2 2.2
70 5.6 2.5
71 5.9 3.2
72 6.1 2.8
73 6.3 2.5
74 6.1 2.8
75 6.4 2.9
76 6.6 3.0
77 6.8 2.8
78 6.7 3.0
79 6.0 2.9
80 5.7 2.6
81 5.5 2.4
82 5.5 2.4
83 5.8 2.7
84 6.0 2.7
85 5.4 3.0
86 6.0 3.4
87 6.7 3.1
88 6.3 2.3
89 5.6 3.0
90 5.5 2.5
91 5.5 2.6
92 6.1 3.0
93 5.8 2.6
94 5.0 2.3
95 5.6 2.7
96 5.7 3.0
97 5.7 2.9
98 6.2 2.9
99 5.1 2.5
100 5.7 2.8
101 6.3 3.3
102 5.8 2.7
103 7.1 3.0
104 6.3 2.9
105 6.5 3.0
106 7.6 3.0
107 4.9 2.5
108 7.3 2.9
109 6.7 2.5
110 7.2 3.6
111 6.5 3.2
112 6.4 2.7
113 6.8 3.0
114 5.7 2.5
115 5.8 2.8
116 6.4 3.2
117 6.5 3.0
118 7.7 3.8
119 7.7 2.6
120 6.0 2.2
121 6.9 3.2
122 5.6 2.8
123 7.7 2.8
124 6.3 2.7
125 6.7 3.3
126 7.2 3.2
127 6.2 2.8
128 6.1 3.0
129 6.4 2.8
130 7.2 3.0
131 7.4 2.8
132 7.9 3.8
133 6.4 2.8
134 6.3 2.8
135 6.1 2.6
136 7.7 3.0
137 6.3 3.4
138 6.4 3.1
139 6.0 3.0
140 6.9 3.1
141 6.7 3.1
142 6.9 3.1
143 5.8 2.7
144 6.8 3.2
145 6.7 3.3
146 6.7 3.0
147 6.3 2.5
148 6.5 3.0
149 6.2 3.4
150 5.9 3.0
Statistiques descriptives univariées
Variable continue
Statistiqes
Code
# Moyenne
mean(iris$Sepal.Length)
Code
# Variance
var(iris$Sepal.Length)
Code
# Écart-type
sd(iris$Sepal.Length)
Code
# Médiane
median(iris$Sepal.Length)
Code
# Les quartiles
quantile(iris$Sepal.Length)
0% 25% 50% 75% 100%
4.3 5.1 5.8 6.4 7.9
Code
# Étendu
max(iris$Sepal.Length) - min(iris$Sepal.Length)
Graphiques
Code
# Histogramme
hist(iris$Sepal.Length, breaks = c(4, 5, 5.5, 6, 6.5, 7, 8), col="purple")
Code
# Boîte à moustaches
boxplot(iris$Sepal.Length, col="steelblue", border = "coral")
Variable qualitative
Tableau Statistique
Code
# Tableau des effectif
table(iris$Species)
setosa versicolor virginica
50 50 50
Code
# Les frequences
n = nrow(iris)
table(iris$Species)/n
setosa versicolor virginica
0.3333333 0.3333333 0.3333333
Code
# Mode
tab = table(iris$Species)
which.max(tab)
Graphiques
Code
# Diagramme à barres
tab = table(iris$Species)
barplot(tab, col="red", border = FALSE)
Code
# Diagramme circulaire (pie chart)
pie(tab)
Statistiques descriptives bivariées
Deux variables quantitatives
Coefficient de corrélation
Code
cor(iris$Sepal.Length, iris$Sepal.Width)
Code
# Nuqge de points
plot(iris$Sepal.Length, iris$Sepal.Width, col=iris$Species, pch=20)
Variable quantitative vs Variable qualitative
Code
# Moyennes par espèces
tapply(iris$Sepal.Length, iris$Species, mean)
setosa versicolor virginica
5.006 5.936 6.588
Code
# Variance
tapply(iris$Sepal.Length, iris$Species, var)
setosa versicolor virginica
0.1242490 0.2664327 0.4043429
Code
boxplot(iris$Sepal.Length ~ iris$Species, col = "coral")
Code
n = nrow(iris)
tss = (n-1)*var(iris$Sepal.Length)
variancesIntra = tapply(iris$Sepal.Length, iris$Species, var)
effectifs = tapply(iris$Sepal.Length, iris$Species, length)
wss = sum(variancesIntra * (effectifs - 1))
bss = tss - wss
eta2 = bss/tss
cat("Rapport des corrélations: ", eta2, "\n")
Rapport des corrélations: 0.6187057
Variable qualitative vs Variable qualitative
Code
eff = matrix(c(45, 70, 60, 30, 25, 50), nrow=2)
colnames(eff) = c("Pop", "Rock", "Classic")
rownames(eff) = c("H", "F")
eff
Pop Rock Classic
H 45 60 25
F 70 30 50
Code
chi2 = chisq.test(eff)$statistic
chi2
Code
V = sqrt((chi2)/(sum(eff)*min(3-1, 2-1)))
V