###     I) Quelques bases de R
### 1) Creation d'Objets
a <- 2+2
b = 1+2

#Affichage 
print(a)

#lister un objet
ls()

#Suppression d'objet 
rm(a,b)
a; b

### 2) Creation de vecteur
v<-c(1,0,-5); v
v1<-1:100; v1
notes<-c(8.2,12,10,17,15.3)
noms<-c('al','pl','zg','lt','cr')
noms
# Pour nommer les elements d'1 vecteur
names(notes)<-c('al','pl','zg','lt','cr')
#ou encore
names(notes)<-noms
notes<-c('al'=8.2,'pl'=12,'zg'=17,'lt'=17,'cr'=15.3)
notes
# Appele un element de notre vecteur
v1[50]
#Appele tous les  element de notre vecteur sauf celui citer
v1[-c(6,5,1:2)]

### 3) Creation matrice
m<-matrix(c(1,17,12,3,6,0),ncol = 2); m
m1<-matrix(1:4,ncol = 2); m1
m2<-matrix(1:4,ncol=2); m2
m3<-matrix(1,ncol = 4,nrow = 2); m3

#Selection de la 1ere ligne matrice
m[1,]

m[1:2,-1]

#Calcul matrice
m1*m2
sin(m1)
exp(m1)
sqrt(m1)
m^4
t(m1)

## Exercice
#Resoudre le system {23x+31y=1
                #   {34x+46y=2
#Resolution
D<- matrix(c(23,34,31,46),nrow=2,ncol=2)
D
V<-matrix(c(1,2),nrow=2,ncol=1); V
solve(D,V)


### 4) Creation de tableau ou data-frame
Vec1<-1:5
Vec2<-c("a","b","c","c","b")
df<-data.frame(x=Vec1,y=Vec2)

#Lire le dataframe
read.table()
#Transformer matrice en tableau
as.data.frame()
##Transformer tableau en matrice
data.matrix()

print(df)
print.default(df)


### 5) Fonctions 
#Generer aleatoirement les donnees a l'aide de la fonction rnorm
set.seed(13) # fixe la graine du generateur
rnorm(n=4, mean = 5,sd=0.5)
args(rnorm)

set.seed(45)
library(MASS)
args(mvrnorm)
mvrnorm(3,mu=c(0,1),Sigma=matrix(c(1,0.5,0.5,1),2,2))


### 6) Imporation de base de donnÃ©es dans R

# Verifier Votre repertoire de travail
getwd()

# Fixer le repertoire de travail
setwd("E:/MASTER1_COURS/R/data")

######### Fichiers CSV
### read.table, read.csv, read.csv2
id <-read.csv2("individu.csv")

######### Fichier SPSS
### read.spss du package foreign
library(foreign)
id <-read.spss("individu.sav",to.data.frame = TRUE)
View(id)

######### Fichier STATA
### read.dta13 du package readstat13
library(readstata13)
id <-read.dta13("individu.dta")

######### Fichiers SAS
### read.sas7bdat du package sas7bdat
library(sas7bdat)
id <- read.sas7bdat("individu.sas7bdat")



#     II. Analyse de Donnees
#Statistique descriptive
#-----------------------
#Chargement de la bibliotheque
library(questionr)
#Importation des donnees sur la base
data(hdv2003)
data(rp99)
data(fecondite)

d<-hdv2003
#Visualisation des donnees
View(d)

#Vue resumee sur les variables

summary(d) #Resume sur toutes les variables de la base

#Resume sur une variable specifique 
summary(d$age)
summary(d$qualif)


#liste les différentes variables 
str(d)

#Visualisation rapide et de maniere condensee 
library(dplyr)
glimpse(d)

lookfor(d)

describe(d)

# Statistique Descriptive

#Variable quantitative
mean(d$heures.tv)

mean(d$heures.tv, na.rm = TRUE) #Moyenne
sd(d$heures.tv, na.rm = TRUE) #Ecart type
min(d$heures.tv, na.rm = TRUE) #Minimum
max(d$heures.tv, na.rm = TRUE) #Maximum
range(d$heures.tv, na.rm = TRUE) #Affiche minimum et maximum
median(d$heures.tv, na.rm = TRUE) #Mediane
quantile(d$heures.tv, na.rm = TRUE) #Quantile
summary(d$heures.tv) # Calcule les statistiques precedentes

#Histogramme
hist(d$heures.tv, main = "Nombre d'heures passées devant la télé par jour",
     xlab = "Heures", ylab = "Effectif")


hist(d$heures.tv, main = "Heures de télé avec classes spécifiées",
     breaks = c(0, 1, 4, 9, 12), xlab = "Heures", ylab = "Proportion",
     col = "red")

#Densité et répartition cumulée
plot(density(d$heures.tv, na.rm = TRUE), main = "Heures consacrées à la télévision")

plot(ecdf(d$heures.tv))

#Boite a moustache
boxplot(d$heures.tv, main = "Nombre d'heures passées devant la télé par jour", 
        ylab = "Heures")

boxplot(d$heures.tv, main = "Nombre d'heures passées devant la télé par\njour",
        ylab = "Heures")
rug(d$heures.tv, side = 2)

# Variables qualitatives
#Tris a plat
table(d$sexe)

table(d$occup)
sort(table(d$occup))
sort(table(d$occup), decreasing = TRUE)

table(d$trav.satisf, useNA = "ifany")

summary(d$trav.satisf)

# Frequence
freq(d$qualif)
freq(d$qualif, cum = TRUE, total = TRUE, sort = "inc", digits = 2,
     exclude = NA)

data(fecondite)
describe(femmes$region)

freq(femmes$region)
freq(femmes$region, levels = "labels")
freq(femmes$region, levels = "values")


#Représentation graphique
plot(table(d$freres.soeurs), main = "Nombre de frères, soeurs, demi-frères
et demi-soeurs",
     ylab = "Effectif")

dotchart(as.matrix(table(d$clso))[, 1], main = "Sentiment d'appartenance à
une classe sociale",
         pch = 19)

dotchart(as.matrix(table(d$clso)))

dotchart(as.matrix(sort(table(d$qualif)))[, 1], main = "Niveau de qualification")


##Statistique bivariée
library(questionr)
data(hdv2003)
d <- hdv2003
data(rp99)

#Graphique de correlation entre 2 variables
plot(d$age, d$heures.tv)
plot(d$age, d$heures.tv, pch = 19, col = rgb(1, 0, 0, 0.1))

#Representation sous forme de carte de l'estimation locale de densité 
library(MASS)
tmp <- d[, c("age", "heures.tv")]
tmp <- tmp[complete.cases(tmp), ]
filled.contour(kde2d(tmp$age, tmp$heures.tv), color = terrain.colors)
smoothScatter(d[, c("age", "heures.tv")])

#Calcul du coeficient de correlation
cor(d$age, d$heures.tv, use = "complete.obs")

reg<-lm(cadres~dipl.sup,data=rp99)
plot(rp99$dipl.sup, rp99$cadres, ylab = "Part des cadres", xlab = "Part des 
     diplomês du supérieur")
abline(reg, col = "red")


#     III. Construction de cartes statique dans R
lat <- -24.66
lon <- 176.9
zoom <- 4

library(ggmap)
MaCarte <- get_map(location=c(lon,lat),zoom=zoom)

ggmap(MaCarte)

data(quakes)

ggmap(MaCarte) +
  geom_point(data=quakes,aes(x=long,y=lat,colour=depth)) +
  scale_color_gradient(low="yellow2",high="red4") + theme_void()









