Ceci est une feuille de travail sous le format R Markdown Notebook. Lorsque vous exécutez le code, le résultat apparaît directement sur la feuille.

Pour ce faire, appuyez sur le bouton Run ou appuyez sur Cmd+Shift+Enter.

note <- c(1,10,4,5,6,8,2)
note
[1]  1 10  4  5  6  8  2

Pour ajouter une nouvelle cellule, appuyez sur le bouton Insert Chunk ou sur le clavier Cmd+Option+I.

En sauvegardant le notebook, le code et l’output sont enregistrés (cliquez sur le bouton Preview ou appuyez sur les touches Cmd+Shift+K pour visualiser le fichier HTML).

sort(note, decreasing = FALSE)
[1]  1  2  4  5  6  8 10

Exercice I.

On commence par un petit exercice pour se rappeler des commandes statistiques de base :

mode(note)
[1] "numeric"
sort(note, decreasing = TRUE)
[1] 10  8  6  5  4  2  1
min(note)
[1] 1
max(note)
[1] 10
mean(note)
[1] 5.142857
median(note)
[1] 5
var(note)
[1] 10.14286
sd(note)
[1] 3.184785
summary(note)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  1.000   3.000   5.000   5.143   7.000  10.000 

Exercice II.

On considère la base de données iris. Ecrivez sur votre copie la première ligne.

iris
dim(iris)
[1] 150   5
names(iris)
[1] "Sepal.Length" "Sepal.Width"  "Petal.Length" "Petal.Width"  "Species"     

Ecrivez sur votre copie la dernière ligne où il y a Levels

iris$Species 
  [1] setosa     setosa     setosa     setosa     setosa     setosa     setosa     setosa     setosa     setosa     setosa     setosa     setosa    
 [14] setosa     setosa     setosa     setosa     setosa     setosa     setosa     setosa     setosa     setosa     setosa     setosa     setosa    
 [27] setosa     setosa     setosa     setosa     setosa     setosa     setosa     setosa     setosa     setosa     setosa     setosa     setosa    
 [40] setosa     setosa     setosa     setosa     setosa     setosa     setosa     setosa     setosa     setosa     setosa     versicolor versicolor
 [53] versicolor versicolor versicolor versicolor versicolor versicolor versicolor versicolor versicolor versicolor versicolor versicolor versicolor
 [66] versicolor versicolor versicolor versicolor versicolor versicolor versicolor versicolor versicolor versicolor versicolor versicolor versicolor
 [79] versicolor versicolor versicolor versicolor versicolor versicolor versicolor versicolor versicolor versicolor versicolor versicolor versicolor
 [92] versicolor versicolor versicolor versicolor versicolor versicolor versicolor versicolor versicolor virginica  virginica  virginica  virginica 
[105] virginica  virginica  virginica  virginica  virginica  virginica  virginica  virginica  virginica  virginica  virginica  virginica  virginica 
[118] virginica  virginica  virginica  virginica  virginica  virginica  virginica  virginica  virginica  virginica  virginica  virginica  virginica 
[131] virginica  virginica  virginica  virginica  virginica  virginica  virginica  virginica  virginica  virginica  virginica  virginica  virginica 
[144] virginica  virginica  virginica  virginica  virginica  virginica  virginica 
Levels: setosa versicolor virginica

Ecrivez les 5 premiers éléments

iris$Petal.Length
  [1] 1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 1.5 1.6 1.4 1.1 1.2 1.5 1.3 1.4 1.7 1.5 1.7 1.5 1.0 1.7 1.9 1.6 1.6 1.5 1.4 1.6 1.6 1.5 1.5 1.4 1.5 1.2
 [37] 1.3 1.4 1.3 1.5 1.3 1.3 1.3 1.6 1.9 1.4 1.6 1.4 1.5 1.4 4.7 4.5 4.9 4.0 4.6 4.5 4.7 3.3 4.6 3.9 3.5 4.2 4.0 4.7 3.6 4.4 4.5 4.1 4.5 3.9 4.8 4.0
 [73] 4.9 4.7 4.3 4.4 4.8 5.0 4.5 3.5 3.8 3.7 3.9 5.1 4.5 4.5 4.7 4.4 4.1 4.0 4.4 4.6 4.0 3.3 4.2 4.2 4.2 4.3 3.0 4.1 6.0 5.1 5.9 5.6 5.8 6.6 4.5 6.3
[109] 5.8 6.1 5.1 5.3 5.5 5.0 5.1 5.3 5.5 6.7 6.9 5.0 5.7 4.9 6.7 4.9 5.7 6.0 4.8 4.9 5.6 5.8 6.1 6.4 5.6 5.1 5.6 6.1 5.6 5.5 4.8 5.4 5.6 5.1 5.1 5.9
[145] 5.7 5.2 5.0 5.2 5.4 5.1
levels(iris$Species)
[1] "setosa"     "versicolor" "virginica" 
summary(iris$Species)
    setosa versicolor  virginica 
        50         50         50 
pie(table(iris$Species))

barplot(table(iris$Species))

library(ggplot2)
p <- ggplot(iris, aes(iris$Species)) 
p

p <- p + geom_bar(aes(fill=iris$Species)) 
p

p <- p + scale_fill_brewer(palette="Reds")
p

p <- p + coord_polar(theta="x", direction=1)
p

boxplot(iris$Petal.Length ~ iris$Species)

ggplot(data=iris, aes(x=iris$Species, y=iris$Petal.Length)) + geom_boxplot()

Exercice III.

Le calcul du Mode :

MonVecteur <- c(1,2,3,2,3,1,2,1,2,2,2,4,5)
MonVecteur
 [1] 1 2 3 2 3 1 2 1 2 2 2 4 5
print(unique(MonVecteur))
[1] 1 2 3 4 5
ux <- unique(MonVecteur)
print(match(MonVecteur, ux))
 [1] 1 2 3 2 3 1 2 1 2 2 2 4 5
print(tabulate(match(MonVecteur, ux)))
[1] 3 6 2 1 1
which.max(tabulate(match(MonVecteur, ux)))
[1] 2
ux[2]
[1] 2
Mode <- function(MonVecteur) {
             ux <- unique(MonVecteur)
             ux[which.max(tabulate(match(MonVecteur, ux)))]
}
Mode(MonVecteur)
[1] 2

On peut s’amuser à écrire la fonction unique ou la fonction match. Idem pour la fonction which.max. Mais le principe est de compter les fréquences des valeurs, puis d’en garder celle qui a une fréquence maximale.

MonMode <- function(MonVecteur){
  a <- unique(MonVecteur)
  M <- NULL
  for (i in a) if (sum(MonVecteur==i) >= sum(MonVecteur==M))
    M <- i
  M
}
Mode(c(1,1,1,3,3,3,3,4,4,4,4,4,4))
[1] 4
as.numeric(labels(which.max(table(c(1,1,1,3,3,3,3,4,4,4,4,4,4)))))
[1] 4
#install.packages("modeest")
library(modeest)

This is package 'modeest' written by P. PONCET.
For a complete list of functions, use 'library(help = "modeest")' or 'help.start()'.
mlv(MonVecteur, method = "mfv")
Mode (most likely value): 2 
Bickel's modal skewness: 0.07692308 
Call: mlv.default(x = MonVecteur, method = "mfv") 

Ceci est la correction du test.

2+3
[1] 5

Bonjour, je m’appelle Ines

print("Hello Ines")
[1] "Hello Ines"
LS0tCnRpdGxlOiAiVGVzdCBkdSBtb2R1bGUgUiAtIE5vdmVtYnJlIDIwMTgiCm91dHB1dDogaHRtbF9ub3RlYm9vawotLS0KCkNlY2kgZXN0IHVuZSBmZXVpbGxlIGRlIHRyYXZhaWwgc291cyBsZSBmb3JtYXQgW1IgTWFya2Rvd25dKGh0dHA6Ly9ybWFya2Rvd24ucnN0dWRpby5jb20pIE5vdGVib29rLiBMb3JzcXVlIHZvdXMgZXjDqWN1dGV6IGxlIGNvZGUsIGxlIHLDqXN1bHRhdCBhcHBhcmHDrnQgZGlyZWN0ZW1lbnQgc3VyIGxhIGZldWlsbGUuIAoKUG91ciBjZSBmYWlyZSwgYXBwdXlleiBzdXIgbGUgYm91dG9uICpSdW4qIG91IGFwcHV5ZXogc3VyICpDbWQrU2hpZnQrRW50ZXIqLiAKCmBgYHtyfQpub3RlIDwtIGMoMSwxMCw0LDUsNiw4LDIpCm5vdGUKYGBgCgpQb3VyIGFqb3V0ZXIgdW5lIG5vdXZlbGxlIGNlbGx1bGUsIGFwcHV5ZXogc3VyIGxlIGJvdXRvbiAqSW5zZXJ0IENodW5rKiBvdSBzdXIgbGUgY2xhdmllciAqQ21kK09wdGlvbitJKi4KCkVuIHNhdXZlZ2FyZGFudCBsZSBub3RlYm9vaywgbGUgY29kZSBldCBsJ291dHB1dCBzb250IGVucmVnaXN0csOpcyAoY2xpcXVleiBzdXIgbGUgYm91dG9uICpQcmV2aWV3KiBvdSBhcHB1eWV6IHN1ciBsZXMgdG91Y2hlcyAqQ21kK1NoaWZ0K0sqIHBvdXIgdmlzdWFsaXNlciBsZSBmaWNoaWVyIEhUTUwpLiAKCgoKYGBge3J9CnNvcnQobm90ZSwgZGVjcmVhc2luZyA9IEZBTFNFKQpgYGAKCiMjIyMgRXhlcmNpY2UgSS4KCk9uIGNvbW1lbmNlIHBhciB1biBwZXRpdCBleGVyY2ljZSBwb3VyIHNlIHJhcHBlbGVyIGRlcyBjb21tYW5kZXMgc3RhdGlzdGlxdWVzIGRlIGJhc2UgOiAKCmBgYHtyfQptb2RlKG5vdGUpCmBgYApgYGB7cn0Kc29ydChub3RlLCBkZWNyZWFzaW5nID0gVFJVRSkKYGBgCgpgYGB7cn0KbWluKG5vdGUpCmBgYAoKYGBge3J9Cm1heChub3RlKQpgYGAKCmBgYHtyfQptZWFuKG5vdGUpCmBgYAoKYGBge3J9Cm1lZGlhbihub3RlKQpgYGAKCmBgYHtyfQp2YXIobm90ZSkKYGBgCgpgYGB7cn0Kc2Qobm90ZSkKYGBgCgpgYGB7cn0Kc3VtbWFyeShub3RlKQpgYGAKCiMjIyMgRXhlcmNpY2UgSUkuCgpPbiBjb25zaWTDqHJlIGxhIGJhc2UgZGUgZG9ubsOpZXMgaXJpcy4gCkVjcml2ZXogc3VyIHZvdHJlIGNvcGllIGxhIHByZW1pw6hyZSBsaWduZS4KYGBge3J9CmlyaXMKYGBgCgpgYGB7cn0KZGltKGlyaXMpCmBgYAoKYGBge3J9Cm5hbWVzKGlyaXMpCmBgYApFY3JpdmV6IHN1ciB2b3RyZSBjb3BpZSBsYSBkZXJuacOocmUgbGlnbmUgb8O5IGlsIHkgYSBMZXZlbHMKYGBge3J9CmlyaXMkU3BlY2llcyAKYGBgCkVjcml2ZXogbGVzIDUgcHJlbWllcnMgw6lsw6ltZW50cwpgYGB7cn0KaXJpcyRQZXRhbC5MZW5ndGgKYGBgCgpgYGB7cn0KbGV2ZWxzKGlyaXMkU3BlY2llcykKYGBgCgpgYGB7cn0Kc3VtbWFyeShpcmlzJFNwZWNpZXMpCmBgYAoKYGBge3J9CnBpZSh0YWJsZShpcmlzJFNwZWNpZXMpKQpgYGAKCmBgYHtyfQpiYXJwbG90KHRhYmxlKGlyaXMkU3BlY2llcykpCmBgYAoKYGBge3J9CmxpYnJhcnkoZ2dwbG90MikKcCA8LSBnZ3Bsb3QoaXJpcywgYWVzKGlyaXMkU3BlY2llcykpIApwCnAgPC0gcCArIGdlb21fYmFyKGFlcyhmaWxsPWlyaXMkU3BlY2llcykpIApwCnAgPC0gcCArIHNjYWxlX2ZpbGxfYnJld2VyKHBhbGV0dGU9IlJlZHMiKQpwCnAgPC0gcCArIGNvb3JkX3BvbGFyKHRoZXRhPSJ4IiwgZGlyZWN0aW9uPTEpCnAKYGBgCgpgYGB7cn0KYm94cGxvdChpcmlzJFBldGFsLkxlbmd0aCB+IGlyaXMkU3BlY2llcykKYGBgCmBgYHtyfQpnZ3Bsb3QoZGF0YT1pcmlzLCBhZXMoeD1pcmlzJFNwZWNpZXMsIHk9aXJpcyRQZXRhbC5MZW5ndGgpKSArIGdlb21fYm94cGxvdCgpCgpgYGAKCiMjIyMgRXhlcmNpY2UgSUlJLgoKTGUgY2FsY3VsIGR1IE1vZGUgOiAKYGBge3J9Ck1vblZlY3RldXIgPC0gYygxLDIsMywyLDMsMSwyLDEsMiwyLDIsNCw1KQpNb25WZWN0ZXVyCmBgYApgYGB7cn0KcHJpbnQodW5pcXVlKE1vblZlY3RldXIpKQp1eCA8LSB1bmlxdWUoTW9uVmVjdGV1cikKcHJpbnQobWF0Y2goTW9uVmVjdGV1ciwgdXgpKQpwcmludCh0YWJ1bGF0ZShtYXRjaChNb25WZWN0ZXVyLCB1eCkpKQp3aGljaC5tYXgodGFidWxhdGUobWF0Y2goTW9uVmVjdGV1ciwgdXgpKSkKdXhbMl0KYGBgCgpgYGB7cn0KTW9kZSA8LSBmdW5jdGlvbihNb25WZWN0ZXVyKSB7CiAgICAgICAgICAgICB1eCA8LSB1bmlxdWUoTW9uVmVjdGV1cikKICAgICAgICAgICAgIHV4W3doaWNoLm1heCh0YWJ1bGF0ZShtYXRjaChNb25WZWN0ZXVyLCB1eCkpKV0KfQoKTW9kZShNb25WZWN0ZXVyKQpgYGAKT24gcGV1dCBzJ2FtdXNlciDDoCDDqWNyaXJlIGxhIGZvbmN0aW9uICoqdW5pcXVlKiogb3UgbGEgZm9uY3Rpb24gKiptYXRjaCoqLiBJZGVtIHBvdXIgbGEgZm9uY3Rpb24gKip3aGljaC5tYXgqKi4gTWFpcyBsZSBwcmluY2lwZSBlc3QgZGUgY29tcHRlciBsZXMgZnLDqXF1ZW5jZXMgZGVzIHZhbGV1cnMsIHB1aXMgZCdlbiBnYXJkZXIgY2VsbGUgcXVpIGEgdW5lIGZyw6lxdWVuY2UgbWF4aW1hbGUuCgpgYGB7cn0KTW9uTW9kZSA8LSBmdW5jdGlvbihNb25WZWN0ZXVyKXsKICBhIDwtIHVuaXF1ZShNb25WZWN0ZXVyKQogIE0gPC0gTlVMTAogIGZvciAoaSBpbiBhKSBpZiAoc3VtKE1vblZlY3RldXI9PWkpID49IHN1bShNb25WZWN0ZXVyPT1NKSkKICAgIE0gPC0gaQogIE0KfQoKTW9kZShjKDEsMSwxLDMsMywzLDMsNCw0LDQsNCw0LDQpKQoKYXMubnVtZXJpYyhsYWJlbHMod2hpY2gubWF4KHRhYmxlKGMoMSwxLDEsMywzLDMsMyw0LDQsNCw0LDQsNCkpKSkpCmBgYAoKYGBge3J9CiNpbnN0YWxsLnBhY2thZ2VzKCJtb2RlZXN0IikKbGlicmFyeShtb2RlZXN0KQpgYGAKCmBgYHtyfQptbHYoTW9uVmVjdGV1ciwgbWV0aG9kID0gIm1mdiIpCmBgYAoKQ2VjaSBlc3QgbGEgY29ycmVjdGlvbiBkdSB0ZXN0LgpgYGB7cn0KMiszCmBgYAoKQm9uam91ciwgamUgbSdhcHBlbGxlIEluZXMKYGBge3J9CnByaW50KCJIZWxsbyBJbmVzIikKYGBgCg==