# Correction du TP1

# 1.1 installation du R

A <- matrix(c(1,2,3,4,5,6,7,8),nrow=4, ncol=2) #creer une matrice 4*2
A
B <- matrix(c(1,2,3,4,5,6,7,8),nrow=4, ncol=2,byrow = TRUE) #creer une matrice 4*2 remplir ligne par ligne, par defaut R rempli colonne par colonne
B

# 1.2 Les differents aides

help(mean) # aide a comprendre comment la fonction mean fonctionne
?mean

# 1.3 Les objets R

a <- 25 #crÃ©er lobjet a en lui donnant la valeur 25
b <- a  # b reÃ§oit la valeur a
b = a   # b reÃ§oit la valeur a
a -> b  # b reÃ§oit la valeur a
a

rm (a)  # pour supprimer l'objet a de la memoire
a
# 1.4 Le type d'un objet

# crÃ©er l'objet x 
x <- TRUE
x
# verifier le mode de l'objet 
mode(x)

# tester si x est un boolean

# 1.5 Vecteurs et matrices

# Pour creer un vecteur on a plusieurs methodes voici 4 :

# Collecteur c

a <- c(12,20,3,34,48,86,61)
a # donne un error est supprimÃ© de la mÃ©moire

# operateur ":"
1:10

# la fonction seq
seq(1,10,by = 0.5) # creer une sequence de 1 a 10 avec un pas de 0,5

seq(1,10,length=6) # creer une sequence de 1 a 10 former de 6 element

# la fonction rep
rep(2,6) # repeter la valeur 2, 6 fois 

rep(c(1,2),each= 4) # repeter chaque valeur de vecteur 4 fois

# La methode la plus connu pour crÃ©er une matrix est utiliser la fonction matrix

m <- matrix(c(1,2,3,4,5,6),ncol = 2) # Distribuer les valeurs du vecteurs dans une matrice de deux colonnes
m
m <- matrix(1:4,nrow = 2,ncol = 2)

m
m <- matrix(1:4,nrow = 2,ncol = 2,byrow = TRUE)
m
m <- matrix(1:4,nrow = 3,ncol = 3) # nombre d'element du vecteur plus petit que le nombre d'element de la matrice
m

# 1.6 les data frames 

# creer deux vecteurs 
vec1 <- 1:5
vec2 <- c("a","b","c","a","b")
df <- data.frame(nom.vec1=vec1,nom.vec2=vec2)

df


# 1.7 Representation graphique

# tracer la fonction sin 2*pi*x
x <- seq (0,1,length=50) 
y <- sin (2*pi*x)
plot (x,y)
plot (x,y,type='l')             # changer le type en ligne au lieu des points
plot (x,y,type='l',col='red')

# Fonction hist

Poids <-c(62.5,70.5,69.7,65,71.2,72.3,66.5,62.3,69.9,72.9,80,82,59,57.5,61,63.9,53.5,52,54)
Departement <- c("M","I","M","E","E","D","M","I","M","I","E","D","D","I","M","I","I","D","E")

# 'M' pour Mathématique, 'I' pour Informatique, 'E' pour Economie, 'D' pour Droit

hist(Poids) #pour tracer l'histogramme des poids
hist(Poids,breaks=c(50,55,60,65,70,85)) # Breaks pour préciser les intervalles des poids
?hist #pour connaître tous les paramètres quand peut changer par exemple couleur 'col'

# Fonction pie 
Departement
# Creer le tableua des effectif dans chaque departement
Effectif_Table <- table(factor(Departement, levels = c("M","I","E","D" )))
Effectif_Table
pie(Effectif_Table)


# Exercices 

#1) Representation graphique d'une variable quantitative

data() # pour voir la liste de donnÃ©es disponible sous R

data(cars) # charger les donnÃ©es cars
help(cars) # description des donnÃ©es
head(cars) # voir les 6 premiÃ¨re observation

# calculer les statistiques descriptives des donnÃ©es :
# pour la variable speed
mean(cars$speed)    # calcule la moyenne arithmetique
var(cars$speed)     # calcule la variance
sd(cars$speed)      # calcule l'ecart type
median(cars$speed)  # calcule de la median

# pour la variable distance
mean(cars$dist)    # calcule la moyenne arithmetique
var(cars$dist)     # calcule la variance
sd(cars$dist)      # calcule l'ecart type
median(cars$dist)  # calcule de la median

# fonction summary
summary(cars)

# pour savoir le type utilise la fonction mode
mode(cars$speed)
mode(cars$dist)

# pour tracer l'histogramme il faut utiliser la fonction hist()
hist(cars$speed,col ='red')

# augmenter le nombre des intervalles
max(cars$speed)
hist(cars$speed,col ='red',breaks = c(0,5,10,15,20,25)) # breaks pour precicer les intervalle
hist(cars$speed,col ='green',breaks = c(0,5,10,15,25))  # augmenter la longueur du dernier intervalle
# changer le titre et le label de l'axe x
hist_speed <- hist(cars$speed,col ='red', breaks = 10,main = "Distribution de la variable speed",xlab = "Speed")
hist_dist <- hist(cars$dist,col ='blue', breaks = 10,main = "Distribution de la variable distance",xlab = "Speed")
hist_dist$density

# Exercice 2 Representation graphique d'une variable quanlitative
data(iris) # charger les donnÃ©es iris
help(iris) # description des donnÃ©es
head(iris)

species_vec=table(factor(iris$Species, levels = c("setosa","versicolor","virginica")))

pie(species_vec,col=c("blue","lightblue","blue4"))

# statistique descriptive des variables quantitatives
summary(iris)

# faire la moyenne de sepal_length par species
mean(iris$Sepal.Length[iris$Species=="setosa"])

mean(iris$Sepal.Length[iris$Species=="versicolor"])

mean(iris$Sepal.Length[iris$Species=="virginica"])

var(iris$Sepal.Length[iris$Species=="setosa"])

var(iris$Sepal.Length[iris$Species=="versicolor"])

var(iris$Sepal.Length[iris$Species=="virginica"])

# l'autre faÃ§on est de traÃ§er une barplot
barplot(species_vec,col=c("blue","lightblue","blue4"))

# Boite a moustache
boxplot(iris$Sepal.Length~iris$Species,main='Boite de moustachede de sepal length en fonction de species')






