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
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
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()
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"