0) Les variables et l’affectation

x <- 1
x
## [1] 1
y = 1
y
## [1] 1
x <- y <- z <- 23

Remarque : porté des variables ! différents des autres languages

VAR <<- 42

1) Les types de base

1.1) numeric

a <- 3.14
b <- 23
class(a)
## [1] "numeric"

1.2) character

fname <- "Jimmy"; lname <- "Lopez" 
name <- paste(fname, lname, sep = " ") 
name
## [1] "Jimmy Lopez"
s1 <- paste0("Eco", "tron")
s1
## [1] "Ecotron"

1.3) logical

u <- TRUE; v <- FALSE
u2 <- T; v2 <- F
u
## [1] TRUE

1.4) other

p1 <- NULL
p2 <- NA
p3 <- NaN
p1
## NULL
p2
## [1] NA
p3
## [1] NaN

2) Les autres structures des données

2.1) vector

Un seul type mais : TRUE < 3 < “s” et NA NULL NaN neutre

v1 <- c(2, 3, 5) 
v1
## [1] 2 3 5
v2 <- c(1:10)
v2
##  [1]  1  2  3  4  5  6  7  8  9 10
v3 <- c(rep(1, 10))
v3
##  [1] 1 1 1 1 1 1 1 1 1 1
v4 <- c(a, b)
v4
## [1]  3.14 23.00
v5 <- c(TRUE, FALSE)
v5
## [1]  TRUE FALSE
v6 <- c(v1, v5) # ! convertion de type
v6
## [1] 2 3 5 1 0
v7 <- c("toto", "tutu")
v7
## [1] "toto" "tutu"
v8 <- c(v6, v7) # ! convertion de type
v8
## [1] "2"    "3"    "5"    "1"    "0"    "toto" "tutu"
v9 <- c(c(3,4), "3")
v9
## [1] "3" "4" "3"

! l’indice des tableaux ou autre commence à 1

v1 <- c(2, 3, 5) 
v1[1]
## [1] 2
v1[2] <- 42
v1
## [1]  2 42  5
v1 <- c(v1, 13)
v1
## [1]  2 42  5 13
v1[-4] # ! supprime l'indice 4
## [1]  2 42  5
v1
## [1]  2 42  5 13
v1[1:2]
## [1]  2 42

Pour avoir la taille de notre vecteur

v1 <- c(2, 3, 5) 
length(v1)
## [1] 3

2.2) matrix

Un seul type de donnée

m1 <- matrix(0, nrow = 5, ncol = 4)
m1
##      [,1] [,2] [,3] [,4]
## [1,]    0    0    0    0
## [2,]    0    0    0    0
## [3,]    0    0    0    0
## [4,]    0    0    0    0
## [5,]    0    0    0    0
m2 <- matrix(1:20, nrow = 5, ncol = 4)
m2
##      [,1] [,2] [,3] [,4]
## [1,]    1    6   11   16
## [2,]    2    7   12   17
## [3,]    3    8   13   18
## [4,]    4    9   14   19
## [5,]    5   10   15   20
length(m1)
## [1] 20
nrow(m1)
## [1] 5
ncol(m1)
## [1] 4
m2[3,2]
## [1] 8
m2[3,]
## [1]  3  8 13 18
m2[,2]
## [1]  6  7  8  9 10
m2[c(2,4), c(1,3)]
##      [,1] [,2]
## [1,]    2   12
## [2,]    4   14

Translation

m2 <- matrix(1:20, nrow = 5, ncol = 4)
m2
##      [,1] [,2] [,3] [,4]
## [1,]    1    6   11   16
## [2,]    2    7   12   17
## [3,]    3    8   13   18
## [4,]    4    9   14   19
## [5,]    5   10   15   20
t(m2)
##      [,1] [,2] [,3] [,4] [,5]
## [1,]    1    2    3    4    5
## [2,]    6    7    8    9   10
## [3,]   11   12   13   14   15
## [4,]   16   17   18   19   20

Diagonale

m2 <- matrix(1:16, nrow = 4, ncol = 4)
diag(m2)
## [1]  1  6 11 16

2.3) array

Un seul type de donnée

ar1 <- array(1:60, dim=c(3,4,5))
ar1
## , , 1
## 
##      [,1] [,2] [,3] [,4]
## [1,]    1    4    7   10
## [2,]    2    5    8   11
## [3,]    3    6    9   12
## 
## , , 2
## 
##      [,1] [,2] [,3] [,4]
## [1,]   13   16   19   22
## [2,]   14   17   20   23
## [3,]   15   18   21   24
## 
## , , 3
## 
##      [,1] [,2] [,3] [,4]
## [1,]   25   28   31   34
## [2,]   26   29   32   35
## [3,]   27   30   33   36
## 
## , , 4
## 
##      [,1] [,2] [,3] [,4]
## [1,]   37   40   43   46
## [2,]   38   41   44   47
## [3,]   39   42   45   48
## 
## , , 5
## 
##      [,1] [,2] [,3] [,4]
## [1,]   49   52   55   58
## [2,]   50   53   56   59
## [3,]   51   54   57   60

2.4) list

Plusieurs type de données

l1 <- list(e1=c(2, 3, 5), e2=c("aa", "bb"), e3=3)
l1
## $e1
## [1] 2 3 5
## 
## $e2
## [1] "aa" "bb"
## 
## $e3
## [1] 3
l1$e1 
## [1] 2 3 5
l1["e1"]
## $e1
## [1] 2 3 5
l1[["e1"]]
## [1] 2 3 5
l1$e3 = c(FALSE)
#pas obligé de nommer
l2 <- list(1,2,3)
l2
## [[1]]
## [1] 1
## 
## [[2]]
## [1] 2
## 
## [[3]]
## [1] 3
length(l2) # la taille de notre liste
## [1] 3

Attention : ne permet pas de fusionner

l3 <- list(l1, l2) # list of list
l3
## [[1]]
## [[1]]$e1
## [1] 2 3 5
## 
## [[1]]$e2
## [1] "aa" "bb"
## 
## [[1]]$e3
## [1] FALSE
## 
## 
## [[2]]
## [[2]][[1]]
## [1] 1
## 
## [[2]][[2]]
## [1] 2
## 
## [[2]][[3]]
## [1] 3

Pour la fusion de list

l4 <- append(l1, l2) # l2 dans l1
l4 
## $e1
## [1] 2 3 5
## 
## $e2
## [1] "aa" "bb"
## 
## $e3
## [1] FALSE
## 
## [[4]]
## [1] 1
## 
## [[5]]
## [1] 2
## 
## [[6]]
## [1] 3

2.5) data.frame

prenom <- c("jimmy", "khalid", "joana")
nom <- c("lopez", "belkhir", "sauze")
team <- c("MBB", "MBB", "ecotron")

data <- data.frame(prenom, nom, team)
data
##   prenom     nom    team
## 1  jimmy   lopez     MBB
## 2 khalid belkhir     MBB
## 3  joana   sauze ecotron
rownames(data) <- c("p1", "p2", "p3")
colnames(data) <- c("nom", "prenom", "plateforme") 
data
##       nom  prenom plateforme
## p1  jimmy   lopez        MBB
## p2 khalid belkhir        MBB
## p3  joana   sauze    ecotron
data["p1","nom"] 
## [1] jimmy
## Levels: jimmy joana khalid
data["nom"]
##       nom
## p1  jimmy
## p2 khalid
## p3  joana
data["p1",]
##      nom prenom plateforme
## p1 jimmy  lopez        MBB
data[c("nom", "plateforme")] 
##       nom plateforme
## p1  jimmy        MBB
## p2 khalid        MBB
## p3  joana    ecotron
data[1,2]
## [1] lopez
## Levels: belkhir lopez sauze
data$prenom
## [1] lopez   belkhir sauze  
## Levels: belkhir lopez sauze
data$new_c <- c(4,3,2)
data
##       nom  prenom plateforme new_c
## p1  jimmy   lopez        MBB     4
## p2 khalid belkhir        MBB     3
## p3  joana   sauze    ecotron     2
data[3, 2] # factor 
## [1] sauze
## Levels: belkhir lopez sauze
nrow(data)
## [1] 3
ncol(data)
## [1] 4

Fusion de data.frame : doit avoir même nom de colonne

fred <- data.frame(nom="fred",prenom="snow",plateforme="NEW") 
bob <- data.frame(nom="bob",prenom="daul",plateforme="NEW2") 
data <- rbind(fred, bob)
data
##    nom prenom plateforme
## 1 fred   snow        NEW
## 2  bob   daul       NEW2

Les noms des colonnes seront choisie pour vous

d1 <- data.frame(1,2,3)
d1
##   X1 X2 X3
## 1  1  2  3

3) Les operateurs arithmétiques

o1 <- 3 + 2.5
o1
## [1] 5.5
o2 <- TRUE + 3
o2
## [1] 4
o3 <- c(1:10) * 3
o3
##  [1]  3  6  9 12 15 18 21 24 27 30

! Possible mais la taille d’un objet plus long n’est pas multiple de la taille d’un objet plus court

o4 <- c(1:10) * c(2, 3, 5)  #  v2 * c(2,3,4)
## Warning in c(1:10) * c(2, 3, 5): la taille d'un objet plus long n'est pas
## multiple de la taille d'un objet plus court
o4
##  [1]  2  6 15  8 15 30 14 24 45 20
o5 <- m2 * 2
o5
##      [,1] [,2] [,3] [,4]
## [1,]    2   10   18   26
## [2,]    4   12   20   28
## [3,]    6   14   22   30
## [4,]    8   16   24   32
o6 <- m2 * v2 # mais la aussi attention à la taille r * c * n = l 
## Warning in m2 * v2: la taille d'un objet plus long n'est pas multiple de la
## taille d'un objet plus court
o6
##      [,1] [,2] [,3] [,4]
## [1,]    1   25   81   39
## [2,]    4   36  100   56
## [3,]    9   49   11   75
## [4,]   16   64   24   96
5 / 2 
## [1] 2.5
5 %% 2 
## [1] 1
5 %/% 2 
## [1] 2
2 ^ 3
## [1] 8

4) Les opérateurs logiques & les structures conditionelles

x <- 6

if( x == 3 ) {
  print("OK")
} else if ( x < 5 ) {
  print (" < 5 ")
} else if (  x > 7 ) {
  print (" > 7 ")
} else {
  print("else")
}
## [1] "else"

5) Les boucles

For par élément

v2 <- c(1:10)
for (e in v2) {
  print(e)
}
## [1] 1
## [1] 2
## [1] 3
## [1] 4
## [1] 5
## [1] 6
## [1] 7
## [1] 8
## [1] 9
## [1] 10

For par indice

v2 <- c(1:10)
for(x in 1:length(v2)) {
  print(v2[x])
}
## [1] 1
## [1] 2
## [1] 3
## [1] 4
## [1] 5
## [1] 6
## [1] 7
## [1] 8
## [1] 9
## [1] 10

Next et Break

v2 <- c(1:10)
for (e in v2) {
  
  if (!(e %% 2)){ # 0 = FALSE ; other numeric = TRUE
    next
  }
  
  if(e == 9) {
    break
  }

  print(e)
}
## [1] 1
## [1] 3
## [1] 5
## [1] 7
m3 <- matrix(0, 4, 5)
m3
##      [,1] [,2] [,3] [,4] [,5]
## [1,]    0    0    0    0    0
## [2,]    0    0    0    0    0
## [3,]    0    0    0    0    0
## [4,]    0    0    0    0    0
for (i in 1:nrow(m3)) {
  for (j in 1:ncol(m3)) {
    m3[i, j] <- i + j
  }
}
m3
##      [,1] [,2] [,3] [,4] [,5]
## [1,]    2    3    4    5    6
## [2,]    3    4    5    6    7
## [3,]    4    5    6    7    8
## [4,]    5    6    7    8    9

While

i <- 1
while (i < 6) {
  print(i)
  i = i+1
}
## [1] 1
## [1] 2
## [1] 3
## [1] 4
## [1] 5

Repeat

x <- 1
repeat {
  print(x)
  x = x+1
  if (x == 6){
    break
  }
}
## [1] 1
## [1] 2
## [1] 3
## [1] 4
## [1] 5

6) Les fonctions

increment <- function(x) {
  
  res <- x + 1

  return(res)
}

increment(22)
## [1] 23
mult <- function(x = 1, y = 1) {

  return(x*y)

}

mult()
## [1] 1
mult(3)
## [1] 3
mult(y = 2) 
## [1] 2
mult(3,2)
## [1] 6
mult(y <- 2) # attention car init la var y et en plus x = 2 et y = 1
## [1] 2
getPI <- function() {
  return(3.14159265359)
}

getPI()
## [1] 3.141593

Quelques fonction de base :

x <- c(9,5,6,8,4,11,36,59,12)

sum(x)  # somme des éléments de x
## [1] 150
prod(x) #   produit des éléments de x
## [1] 2422379520
max(x)  # maximum des éléments de x
## [1] 59
min(x)  # minimum des éléments de x
## [1] 4
which.max(x)    # retourne l'indice du maximum des éléments de x
## [1] 8
which.min(x)    # retourne l'indice du minimum des éléments de x
## [1] 5
range(x)    # idem que c(min(x), max(x)); vector
## [1]  4 59
length(x)   # nombre d'éléments dans x
## [1] 9
mean(x)     # moyenne des éléments de x
## [1] 16.66667
median(x)   # médiane des éléments de x
## [1] 9
class(x)
## [1] "numeric"
as.numeric("56") # else NA
## [1] 56
as.character(123) # as. ...
## [1] "123"
is.null(x) #is. ...
## [1] FALSE
is.numeric(x)
## [1] TRUE
is.vector(x)
## [1] TRUE

Attention ne pas nommer des fonctions de base ou de package

sum <- function(x) {
  return(42)
}

x <- c(9,5,6,8,4,11,36,59,12)

sum(x)
## [1] 42
base::sum(x)
## [1] 150

Fonction dans une fonction

foo <- function() { # function in function

  bar <- function() { # private function, possible mais peut utile
    return(4)
  }
  
  return(3+bar())
}

foo()
## [1] 7

7) Comment optimiser les boucles

Attention si dépendances entre les indices

f1 <- function(x) {
  return(x+1)
}

x <- c(9,5,6,8,4,11,36,59,12)

sapply(x, f1) # sapply return vector, lapply list of element
## [1] 10  6  7  9  5 12 37 60 13
m <- matrix(data=cbind(1:6, 5:10, 10:15), nrow=6, ncol=3)
m
##      [,1] [,2] [,3]
## [1,]    1    5   10
## [2,]    2    6   11
## [3,]    3    7   12
## [4,]    4    8   13
## [5,]    5    9   14
## [6,]    6   10   15
apply(m, 1, mean) # 1 egale ligne 
## [1]  5.333333  6.333333  7.333333  8.333333  9.333333 10.333333
apply(m, 2, mean) # 2 colonne ou c(1,2)
## [1]  3.5  7.5 12.5
apply(m, c(1,2), mean) # 1 egale ligne 2 colonne ou c(1,2)
##      [,1] [,2] [,3]
## [1,]    1    5   10
## [2,]    2    6   11
## [3,]    3    7   12
## [4,]    4    8   13
## [5,]    5    9   14
## [6,]    6   10   15
mean(m)
## [1] 7.833333
sapply(m, f1) # lapply return list of each function return
##  [1]  2  3  4  5  6  7  6  7  8  9 10 11 11 12 13 14 15 16
lapply(m, f1)
## [[1]]
## [1] 2
## 
## [[2]]
## [1] 3
## 
## [[3]]
## [1] 4
## 
## [[4]]
## [1] 5
## 
## [[5]]
## [1] 6
## 
## [[6]]
## [1] 7
## 
## [[7]]
## [1] 6
## 
## [[8]]
## [1] 7
## 
## [[9]]
## [1] 8
## 
## [[10]]
## [1] 9
## 
## [[11]]
## [1] 10
## 
## [[12]]
## [1] 11
## 
## [[13]]
## [1] 11
## 
## [[14]]
## [1] 12
## 
## [[15]]
## [1] 13
## 
## [[16]]
## [1] 14
## 
## [[17]]
## [1] 15
## 
## [[18]]
## [1] 16

8) Lire / Ecrire un fichier csv

The data was extracted from the 1974 Motor Trend US magazine, and comprises fuel consumption and 10 aspects of automobile design and performance for 32 automobiles (1973–74 models).

mtcars 
##                      mpg cyl  disp  hp drat    wt  qsec vs am gear carb
## Mazda RX4           21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4
## Mazda RX4 Wag       21.0   6 160.0 110 3.90 2.875 17.02  0  1    4    4
## Datsun 710          22.8   4 108.0  93 3.85 2.320 18.61  1  1    4    1
## Hornet 4 Drive      21.4   6 258.0 110 3.08 3.215 19.44  1  0    3    1
## Hornet Sportabout   18.7   8 360.0 175 3.15 3.440 17.02  0  0    3    2
## Valiant             18.1   6 225.0 105 2.76 3.460 20.22  1  0    3    1
## Duster 360          14.3   8 360.0 245 3.21 3.570 15.84  0  0    3    4
## Merc 240D           24.4   4 146.7  62 3.69 3.190 20.00  1  0    4    2
## Merc 230            22.8   4 140.8  95 3.92 3.150 22.90  1  0    4    2
## Merc 280            19.2   6 167.6 123 3.92 3.440 18.30  1  0    4    4
## Merc 280C           17.8   6 167.6 123 3.92 3.440 18.90  1  0    4    4
## Merc 450SE          16.4   8 275.8 180 3.07 4.070 17.40  0  0    3    3
## Merc 450SL          17.3   8 275.8 180 3.07 3.730 17.60  0  0    3    3
## Merc 450SLC         15.2   8 275.8 180 3.07 3.780 18.00  0  0    3    3
## Cadillac Fleetwood  10.4   8 472.0 205 2.93 5.250 17.98  0  0    3    4
## Lincoln Continental 10.4   8 460.0 215 3.00 5.424 17.82  0  0    3    4
## Chrysler Imperial   14.7   8 440.0 230 3.23 5.345 17.42  0  0    3    4
## Fiat 128            32.4   4  78.7  66 4.08 2.200 19.47  1  1    4    1
## Honda Civic         30.4   4  75.7  52 4.93 1.615 18.52  1  1    4    2
## Toyota Corolla      33.9   4  71.1  65 4.22 1.835 19.90  1  1    4    1
## Toyota Corona       21.5   4 120.1  97 3.70 2.465 20.01  1  0    3    1
## Dodge Challenger    15.5   8 318.0 150 2.76 3.520 16.87  0  0    3    2
## AMC Javelin         15.2   8 304.0 150 3.15 3.435 17.30  0  0    3    2
## Camaro Z28          13.3   8 350.0 245 3.73 3.840 15.41  0  0    3    4
## Pontiac Firebird    19.2   8 400.0 175 3.08 3.845 17.05  0  0    3    2
## Fiat X1-9           27.3   4  79.0  66 4.08 1.935 18.90  1  1    4    1
## Porsche 914-2       26.0   4 120.3  91 4.43 2.140 16.70  0  1    5    2
## Lotus Europa        30.4   4  95.1 113 3.77 1.513 16.90  1  1    5    2
## Ford Pantera L      15.8   8 351.0 264 4.22 3.170 14.50  0  1    5    4
## Ferrari Dino        19.7   6 145.0 175 3.62 2.770 15.50  0  1    5    6
## Maserati Bora       15.0   8 301.0 335 3.54 3.570 14.60  0  1    5    8
## Volvo 142E          21.4   4 121.0 109 4.11 2.780 18.60  1  1    4    2
write.csv(mtcars, "exemple_1.csv")
write.csv(mtcars, "exemple_2.csv", row.names = F)
write.csv2(mtcars, "exemple_3.csv")

cars <- read.csv("exemple_1.csv")
cars
##                      X  mpg cyl  disp  hp drat    wt  qsec vs am gear carb
## 1            Mazda RX4 21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4
## 2        Mazda RX4 Wag 21.0   6 160.0 110 3.90 2.875 17.02  0  1    4    4
## 3           Datsun 710 22.8   4 108.0  93 3.85 2.320 18.61  1  1    4    1
## 4       Hornet 4 Drive 21.4   6 258.0 110 3.08 3.215 19.44  1  0    3    1
## 5    Hornet Sportabout 18.7   8 360.0 175 3.15 3.440 17.02  0  0    3    2
## 6              Valiant 18.1   6 225.0 105 2.76 3.460 20.22  1  0    3    1
## 7           Duster 360 14.3   8 360.0 245 3.21 3.570 15.84  0  0    3    4
## 8            Merc 240D 24.4   4 146.7  62 3.69 3.190 20.00  1  0    4    2
## 9             Merc 230 22.8   4 140.8  95 3.92 3.150 22.90  1  0    4    2
## 10            Merc 280 19.2   6 167.6 123 3.92 3.440 18.30  1  0    4    4
## 11           Merc 280C 17.8   6 167.6 123 3.92 3.440 18.90  1  0    4    4
## 12          Merc 450SE 16.4   8 275.8 180 3.07 4.070 17.40  0  0    3    3
## 13          Merc 450SL 17.3   8 275.8 180 3.07 3.730 17.60  0  0    3    3
## 14         Merc 450SLC 15.2   8 275.8 180 3.07 3.780 18.00  0  0    3    3
## 15  Cadillac Fleetwood 10.4   8 472.0 205 2.93 5.250 17.98  0  0    3    4
## 16 Lincoln Continental 10.4   8 460.0 215 3.00 5.424 17.82  0  0    3    4
## 17   Chrysler Imperial 14.7   8 440.0 230 3.23 5.345 17.42  0  0    3    4
## 18            Fiat 128 32.4   4  78.7  66 4.08 2.200 19.47  1  1    4    1
## 19         Honda Civic 30.4   4  75.7  52 4.93 1.615 18.52  1  1    4    2
## 20      Toyota Corolla 33.9   4  71.1  65 4.22 1.835 19.90  1  1    4    1
## 21       Toyota Corona 21.5   4 120.1  97 3.70 2.465 20.01  1  0    3    1
## 22    Dodge Challenger 15.5   8 318.0 150 2.76 3.520 16.87  0  0    3    2
## 23         AMC Javelin 15.2   8 304.0 150 3.15 3.435 17.30  0  0    3    2
## 24          Camaro Z28 13.3   8 350.0 245 3.73 3.840 15.41  0  0    3    4
## 25    Pontiac Firebird 19.2   8 400.0 175 3.08 3.845 17.05  0  0    3    2
## 26           Fiat X1-9 27.3   4  79.0  66 4.08 1.935 18.90  1  1    4    1
## 27       Porsche 914-2 26.0   4 120.3  91 4.43 2.140 16.70  0  1    5    2
## 28        Lotus Europa 30.4   4  95.1 113 3.77 1.513 16.90  1  1    5    2
## 29      Ford Pantera L 15.8   8 351.0 264 4.22 3.170 14.50  0  1    5    4
## 30        Ferrari Dino 19.7   6 145.0 175 3.62 2.770 15.50  0  1    5    6
## 31       Maserati Bora 15.0   8 301.0 335 3.54 3.570 14.60  0  1    5    8
## 32          Volvo 142E 21.4   4 121.0 109 4.11 2.780 18.60  1  1    4    2
cars3 <- read.csv("exemple_3.csv", sep = ";")
cars3
##                      X  mpg cyl  disp  hp drat    wt  qsec vs am gear carb
## 1            Mazda RX4   21   6   160 110  3,9  2,62 16,46  0  1    4    4
## 2        Mazda RX4 Wag   21   6   160 110  3,9 2,875 17,02  0  1    4    4
## 3           Datsun 710 22,8   4   108  93 3,85  2,32 18,61  1  1    4    1
## 4       Hornet 4 Drive 21,4   6   258 110 3,08 3,215 19,44  1  0    3    1
## 5    Hornet Sportabout 18,7   8   360 175 3,15  3,44 17,02  0  0    3    2
## 6              Valiant 18,1   6   225 105 2,76  3,46 20,22  1  0    3    1
## 7           Duster 360 14,3   8   360 245 3,21  3,57 15,84  0  0    3    4
## 8            Merc 240D 24,4   4 146,7  62 3,69  3,19    20  1  0    4    2
## 9             Merc 230 22,8   4 140,8  95 3,92  3,15  22,9  1  0    4    2
## 10            Merc 280 19,2   6 167,6 123 3,92  3,44  18,3  1  0    4    4
## 11           Merc 280C 17,8   6 167,6 123 3,92  3,44  18,9  1  0    4    4
## 12          Merc 450SE 16,4   8 275,8 180 3,07  4,07  17,4  0  0    3    3
## 13          Merc 450SL 17,3   8 275,8 180 3,07  3,73  17,6  0  0    3    3
## 14         Merc 450SLC 15,2   8 275,8 180 3,07  3,78    18  0  0    3    3
## 15  Cadillac Fleetwood 10,4   8   472 205 2,93  5,25 17,98  0  0    3    4
## 16 Lincoln Continental 10,4   8   460 215    3 5,424 17,82  0  0    3    4
## 17   Chrysler Imperial 14,7   8   440 230 3,23 5,345 17,42  0  0    3    4
## 18            Fiat 128 32,4   4  78,7  66 4,08   2,2 19,47  1  1    4    1
## 19         Honda Civic 30,4   4  75,7  52 4,93 1,615 18,52  1  1    4    2
## 20      Toyota Corolla 33,9   4  71,1  65 4,22 1,835  19,9  1  1    4    1
## 21       Toyota Corona 21,5   4 120,1  97  3,7 2,465 20,01  1  0    3    1
## 22    Dodge Challenger 15,5   8   318 150 2,76  3,52 16,87  0  0    3    2
## 23         AMC Javelin 15,2   8   304 150 3,15 3,435  17,3  0  0    3    2
## 24          Camaro Z28 13,3   8   350 245 3,73  3,84 15,41  0  0    3    4
## 25    Pontiac Firebird 19,2   8   400 175 3,08 3,845 17,05  0  0    3    2
## 26           Fiat X1-9 27,3   4    79  66 4,08 1,935  18,9  1  1    4    1
## 27       Porsche 914-2   26   4 120,3  91 4,43  2,14  16,7  0  1    5    2
## 28        Lotus Europa 30,4   4  95,1 113 3,77 1,513  16,9  1  1    5    2
## 29      Ford Pantera L 15,8   8   351 264 4,22  3,17  14,5  0  1    5    4
## 30        Ferrari Dino 19,7   6   145 175 3,62  2,77  15,5  0  1    5    6
## 31       Maserati Bora   15   8   301 335 3,54  3,57  14,6  0  1    5    8
## 32          Volvo 142E 21,4   4   121 109 4,11  2,78  18,6  1  1    4    2
# other write si pas un csv

9) Charger et utiliser un autre script R

source("./tools.R") # on charge un autre script R

jimmy_sub1()
## [1] "call sub function"

10) Utiliser un package R

#install.packages('ggplot2')
library(ggplot2) 

data <- data.frame(a=1:7, b=c(2, 5, 6, 12, 20, 3, 7))
p <- ggplot(data=data, aes(x=a, y=b,colour="Cond")) 
p <- p + geom_point(size=4)
p <- p + geom_line(size=2) 
p

?ggplot2 # info sur le package 
?ggplot # info sur la fonction

11) La manipulation des données avec dplyr

library (dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
mtcars
##                      mpg cyl  disp  hp drat    wt  qsec vs am gear carb
## Mazda RX4           21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4
## Mazda RX4 Wag       21.0   6 160.0 110 3.90 2.875 17.02  0  1    4    4
## Datsun 710          22.8   4 108.0  93 3.85 2.320 18.61  1  1    4    1
## Hornet 4 Drive      21.4   6 258.0 110 3.08 3.215 19.44  1  0    3    1
## Hornet Sportabout   18.7   8 360.0 175 3.15 3.440 17.02  0  0    3    2
## Valiant             18.1   6 225.0 105 2.76 3.460 20.22  1  0    3    1
## Duster 360          14.3   8 360.0 245 3.21 3.570 15.84  0  0    3    4
## Merc 240D           24.4   4 146.7  62 3.69 3.190 20.00  1  0    4    2
## Merc 230            22.8   4 140.8  95 3.92 3.150 22.90  1  0    4    2
## Merc 280            19.2   6 167.6 123 3.92 3.440 18.30  1  0    4    4
## Merc 280C           17.8   6 167.6 123 3.92 3.440 18.90  1  0    4    4
## Merc 450SE          16.4   8 275.8 180 3.07 4.070 17.40  0  0    3    3
## Merc 450SL          17.3   8 275.8 180 3.07 3.730 17.60  0  0    3    3
## Merc 450SLC         15.2   8 275.8 180 3.07 3.780 18.00  0  0    3    3
## Cadillac Fleetwood  10.4   8 472.0 205 2.93 5.250 17.98  0  0    3    4
## Lincoln Continental 10.4   8 460.0 215 3.00 5.424 17.82  0  0    3    4
## Chrysler Imperial   14.7   8 440.0 230 3.23 5.345 17.42  0  0    3    4
## Fiat 128            32.4   4  78.7  66 4.08 2.200 19.47  1  1    4    1
## Honda Civic         30.4   4  75.7  52 4.93 1.615 18.52  1  1    4    2
## Toyota Corolla      33.9   4  71.1  65 4.22 1.835 19.90  1  1    4    1
## Toyota Corona       21.5   4 120.1  97 3.70 2.465 20.01  1  0    3    1
## Dodge Challenger    15.5   8 318.0 150 2.76 3.520 16.87  0  0    3    2
## AMC Javelin         15.2   8 304.0 150 3.15 3.435 17.30  0  0    3    2
## Camaro Z28          13.3   8 350.0 245 3.73 3.840 15.41  0  0    3    4
## Pontiac Firebird    19.2   8 400.0 175 3.08 3.845 17.05  0  0    3    2
## Fiat X1-9           27.3   4  79.0  66 4.08 1.935 18.90  1  1    4    1
## Porsche 914-2       26.0   4 120.3  91 4.43 2.140 16.70  0  1    5    2
## Lotus Europa        30.4   4  95.1 113 3.77 1.513 16.90  1  1    5    2
## Ford Pantera L      15.8   8 351.0 264 4.22 3.170 14.50  0  1    5    4
## Ferrari Dino        19.7   6 145.0 175 3.62 2.770 15.50  0  1    5    6
## Maserati Bora       15.0   8 301.0 335 3.54 3.570 14.60  0  1    5    8
## Volvo 142E          21.4   4 121.0 109 4.11 2.780 18.60  1  1    4    2
select(mtcars, drat) # on sélectionne une colonne
##                     drat
## Mazda RX4           3.90
## Mazda RX4 Wag       3.90
## Datsun 710          3.85
## Hornet 4 Drive      3.08
## Hornet Sportabout   3.15
## Valiant             2.76
## Duster 360          3.21
## Merc 240D           3.69
## Merc 230            3.92
## Merc 280            3.92
## Merc 280C           3.92
## Merc 450SE          3.07
## Merc 450SL          3.07
## Merc 450SLC         3.07
## Cadillac Fleetwood  2.93
## Lincoln Continental 3.00
## Chrysler Imperial   3.23
## Fiat 128            4.08
## Honda Civic         4.93
## Toyota Corolla      4.22
## Toyota Corona       3.70
## Dodge Challenger    2.76
## AMC Javelin         3.15
## Camaro Z28          3.73
## Pontiac Firebird    3.08
## Fiat X1-9           4.08
## Porsche 914-2       4.43
## Lotus Europa        3.77
## Ford Pantera L      4.22
## Ferrari Dino        3.62
## Maserati Bora       3.54
## Volvo 142E          4.11
mtcars["drat"] # équivalent classique
##                     drat
## Mazda RX4           3.90
## Mazda RX4 Wag       3.90
## Datsun 710          3.85
## Hornet 4 Drive      3.08
## Hornet Sportabout   3.15
## Valiant             2.76
## Duster 360          3.21
## Merc 240D           3.69
## Merc 230            3.92
## Merc 280            3.92
## Merc 280C           3.92
## Merc 450SE          3.07
## Merc 450SL          3.07
## Merc 450SLC         3.07
## Cadillac Fleetwood  2.93
## Lincoln Continental 3.00
## Chrysler Imperial   3.23
## Fiat 128            4.08
## Honda Civic         4.93
## Toyota Corolla      4.22
## Toyota Corona       3.70
## Dodge Challenger    2.76
## AMC Javelin         3.15
## Camaro Z28          3.73
## Pontiac Firebird    3.08
## Fiat X1-9           4.08
## Porsche 914-2       4.43
## Lotus Europa        3.77
## Ford Pantera L      4.22
## Ferrari Dino        3.62
## Maserati Bora       3.54
## Volvo 142E          4.11
select(mtcars, -drat) # on élimine une colonne
##                      mpg cyl  disp  hp    wt  qsec vs am gear carb
## Mazda RX4           21.0   6 160.0 110 2.620 16.46  0  1    4    4
## Mazda RX4 Wag       21.0   6 160.0 110 2.875 17.02  0  1    4    4
## Datsun 710          22.8   4 108.0  93 2.320 18.61  1  1    4    1
## Hornet 4 Drive      21.4   6 258.0 110 3.215 19.44  1  0    3    1
## Hornet Sportabout   18.7   8 360.0 175 3.440 17.02  0  0    3    2
## Valiant             18.1   6 225.0 105 3.460 20.22  1  0    3    1
## Duster 360          14.3   8 360.0 245 3.570 15.84  0  0    3    4
## Merc 240D           24.4   4 146.7  62 3.190 20.00  1  0    4    2
## Merc 230            22.8   4 140.8  95 3.150 22.90  1  0    4    2
## Merc 280            19.2   6 167.6 123 3.440 18.30  1  0    4    4
## Merc 280C           17.8   6 167.6 123 3.440 18.90  1  0    4    4
## Merc 450SE          16.4   8 275.8 180 4.070 17.40  0  0    3    3
## Merc 450SL          17.3   8 275.8 180 3.730 17.60  0  0    3    3
## Merc 450SLC         15.2   8 275.8 180 3.780 18.00  0  0    3    3
## Cadillac Fleetwood  10.4   8 472.0 205 5.250 17.98  0  0    3    4
## Lincoln Continental 10.4   8 460.0 215 5.424 17.82  0  0    3    4
## Chrysler Imperial   14.7   8 440.0 230 5.345 17.42  0  0    3    4
## Fiat 128            32.4   4  78.7  66 2.200 19.47  1  1    4    1
## Honda Civic         30.4   4  75.7  52 1.615 18.52  1  1    4    2
## Toyota Corolla      33.9   4  71.1  65 1.835 19.90  1  1    4    1
## Toyota Corona       21.5   4 120.1  97 2.465 20.01  1  0    3    1
## Dodge Challenger    15.5   8 318.0 150 3.520 16.87  0  0    3    2
## AMC Javelin         15.2   8 304.0 150 3.435 17.30  0  0    3    2
## Camaro Z28          13.3   8 350.0 245 3.840 15.41  0  0    3    4
## Pontiac Firebird    19.2   8 400.0 175 3.845 17.05  0  0    3    2
## Fiat X1-9           27.3   4  79.0  66 1.935 18.90  1  1    4    1
## Porsche 914-2       26.0   4 120.3  91 2.140 16.70  0  1    5    2
## Lotus Europa        30.4   4  95.1 113 1.513 16.90  1  1    5    2
## Ford Pantera L      15.8   8 351.0 264 3.170 14.50  0  1    5    4
## Ferrari Dino        19.7   6 145.0 175 2.770 15.50  0  1    5    6
## Maserati Bora       15.0   8 301.0 335 3.570 14.60  0  1    5    8
## Volvo 142E          21.4   4 121.0 109 2.780 18.60  1  1    4    2
mtcars[,! names(data) %in% c("drat")]  # équivalent classique
##                      mpg cyl  disp  hp drat    wt  qsec vs am gear carb
## Mazda RX4           21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4
## Mazda RX4 Wag       21.0   6 160.0 110 3.90 2.875 17.02  0  1    4    4
## Datsun 710          22.8   4 108.0  93 3.85 2.320 18.61  1  1    4    1
## Hornet 4 Drive      21.4   6 258.0 110 3.08 3.215 19.44  1  0    3    1
## Hornet Sportabout   18.7   8 360.0 175 3.15 3.440 17.02  0  0    3    2
## Valiant             18.1   6 225.0 105 2.76 3.460 20.22  1  0    3    1
## Duster 360          14.3   8 360.0 245 3.21 3.570 15.84  0  0    3    4
## Merc 240D           24.4   4 146.7  62 3.69 3.190 20.00  1  0    4    2
## Merc 230            22.8   4 140.8  95 3.92 3.150 22.90  1  0    4    2
## Merc 280            19.2   6 167.6 123 3.92 3.440 18.30  1  0    4    4
## Merc 280C           17.8   6 167.6 123 3.92 3.440 18.90  1  0    4    4
## Merc 450SE          16.4   8 275.8 180 3.07 4.070 17.40  0  0    3    3
## Merc 450SL          17.3   8 275.8 180 3.07 3.730 17.60  0  0    3    3
## Merc 450SLC         15.2   8 275.8 180 3.07 3.780 18.00  0  0    3    3
## Cadillac Fleetwood  10.4   8 472.0 205 2.93 5.250 17.98  0  0    3    4
## Lincoln Continental 10.4   8 460.0 215 3.00 5.424 17.82  0  0    3    4
## Chrysler Imperial   14.7   8 440.0 230 3.23 5.345 17.42  0  0    3    4
## Fiat 128            32.4   4  78.7  66 4.08 2.200 19.47  1  1    4    1
## Honda Civic         30.4   4  75.7  52 4.93 1.615 18.52  1  1    4    2
## Toyota Corolla      33.9   4  71.1  65 4.22 1.835 19.90  1  1    4    1
## Toyota Corona       21.5   4 120.1  97 3.70 2.465 20.01  1  0    3    1
## Dodge Challenger    15.5   8 318.0 150 2.76 3.520 16.87  0  0    3    2
## AMC Javelin         15.2   8 304.0 150 3.15 3.435 17.30  0  0    3    2
## Camaro Z28          13.3   8 350.0 245 3.73 3.840 15.41  0  0    3    4
## Pontiac Firebird    19.2   8 400.0 175 3.08 3.845 17.05  0  0    3    2
## Fiat X1-9           27.3   4  79.0  66 4.08 1.935 18.90  1  1    4    1
## Porsche 914-2       26.0   4 120.3  91 4.43 2.140 16.70  0  1    5    2
## Lotus Europa        30.4   4  95.1 113 3.77 1.513 16.90  1  1    5    2
## Ford Pantera L      15.8   8 351.0 264 4.22 3.170 14.50  0  1    5    4
## Ferrari Dino        19.7   6 145.0 175 3.62 2.770 15.50  0  1    5    6
## Maserati Bora       15.0   8 301.0 335 3.54 3.570 14.60  0  1    5    8
## Volvo 142E          21.4   4 121.0 109 4.11 2.780 18.60  1  1    4    2
filter(mtcars, disp > 160, drat < 3) # pour filtrer 
##    mpg cyl disp  hp drat   wt  qsec vs am gear carb
## 1 18.1   6  225 105 2.76 3.46 20.22  1  0    3    1
## 2 10.4   8  472 205 2.93 5.25 17.98  0  0    3    4
## 3 15.5   8  318 150 2.76 3.52 16.87  0  0    3    2
f1 <- mtcars[mtcars$disp>160,]
f1[f1$drat < 3, ] # équivalent classique
##                     mpg cyl disp  hp drat   wt  qsec vs am gear carb
## Valiant            18.1   6  225 105 2.76 3.46 20.22  1  0    3    1
## Cadillac Fleetwood 10.4   8  472 205 2.93 5.25 17.98  0  0    3    4
## Dodge Challenger   15.5   8  318 150 2.76 3.52 16.87  0  0    3    2
arrange(mtcars, disp) # on range dans l'ordre croissant
##     mpg cyl  disp  hp drat    wt  qsec vs am gear carb
## 1  33.9   4  71.1  65 4.22 1.835 19.90  1  1    4    1
## 2  30.4   4  75.7  52 4.93 1.615 18.52  1  1    4    2
## 3  32.4   4  78.7  66 4.08 2.200 19.47  1  1    4    1
## 4  27.3   4  79.0  66 4.08 1.935 18.90  1  1    4    1
## 5  30.4   4  95.1 113 3.77 1.513 16.90  1  1    5    2
## 6  22.8   4 108.0  93 3.85 2.320 18.61  1  1    4    1
## 7  21.5   4 120.1  97 3.70 2.465 20.01  1  0    3    1
## 8  26.0   4 120.3  91 4.43 2.140 16.70  0  1    5    2
## 9  21.4   4 121.0 109 4.11 2.780 18.60  1  1    4    2
## 10 22.8   4 140.8  95 3.92 3.150 22.90  1  0    4    2
## 11 19.7   6 145.0 175 3.62 2.770 15.50  0  1    5    6
## 12 24.4   4 146.7  62 3.69 3.190 20.00  1  0    4    2
## 13 21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4
## 14 21.0   6 160.0 110 3.90 2.875 17.02  0  1    4    4
## 15 19.2   6 167.6 123 3.92 3.440 18.30  1  0    4    4
## 16 17.8   6 167.6 123 3.92 3.440 18.90  1  0    4    4
## 17 18.1   6 225.0 105 2.76 3.460 20.22  1  0    3    1
## 18 21.4   6 258.0 110 3.08 3.215 19.44  1  0    3    1
## 19 16.4   8 275.8 180 3.07 4.070 17.40  0  0    3    3
## 20 17.3   8 275.8 180 3.07 3.730 17.60  0  0    3    3
## 21 15.2   8 275.8 180 3.07 3.780 18.00  0  0    3    3
## 22 15.0   8 301.0 335 3.54 3.570 14.60  0  1    5    8
## 23 15.2   8 304.0 150 3.15 3.435 17.30  0  0    3    2
## 24 15.5   8 318.0 150 2.76 3.520 16.87  0  0    3    2
## 25 13.3   8 350.0 245 3.73 3.840 15.41  0  0    3    4
## 26 15.8   8 351.0 264 4.22 3.170 14.50  0  1    5    4
## 27 18.7   8 360.0 175 3.15 3.440 17.02  0  0    3    2
## 28 14.3   8 360.0 245 3.21 3.570 15.84  0  0    3    4
## 29 19.2   8 400.0 175 3.08 3.845 17.05  0  0    3    2
## 30 14.7   8 440.0 230 3.23 5.345 17.42  0  0    3    4
## 31 10.4   8 460.0 215 3.00 5.424 17.82  0  0    3    4
## 32 10.4   8 472.0 205 2.93 5.250 17.98  0  0    3    4
mtcars[order(mtcars$disp),]  # équivalent classique
##                      mpg cyl  disp  hp drat    wt  qsec vs am gear carb
## Toyota Corolla      33.9   4  71.1  65 4.22 1.835 19.90  1  1    4    1
## Honda Civic         30.4   4  75.7  52 4.93 1.615 18.52  1  1    4    2
## Fiat 128            32.4   4  78.7  66 4.08 2.200 19.47  1  1    4    1
## Fiat X1-9           27.3   4  79.0  66 4.08 1.935 18.90  1  1    4    1
## Lotus Europa        30.4   4  95.1 113 3.77 1.513 16.90  1  1    5    2
## Datsun 710          22.8   4 108.0  93 3.85 2.320 18.61  1  1    4    1
## Toyota Corona       21.5   4 120.1  97 3.70 2.465 20.01  1  0    3    1
## Porsche 914-2       26.0   4 120.3  91 4.43 2.140 16.70  0  1    5    2
## Volvo 142E          21.4   4 121.0 109 4.11 2.780 18.60  1  1    4    2
## Merc 230            22.8   4 140.8  95 3.92 3.150 22.90  1  0    4    2
## Ferrari Dino        19.7   6 145.0 175 3.62 2.770 15.50  0  1    5    6
## Merc 240D           24.4   4 146.7  62 3.69 3.190 20.00  1  0    4    2
## Mazda RX4           21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4
## Mazda RX4 Wag       21.0   6 160.0 110 3.90 2.875 17.02  0  1    4    4
## Merc 280            19.2   6 167.6 123 3.92 3.440 18.30  1  0    4    4
## Merc 280C           17.8   6 167.6 123 3.92 3.440 18.90  1  0    4    4
## Valiant             18.1   6 225.0 105 2.76 3.460 20.22  1  0    3    1
## Hornet 4 Drive      21.4   6 258.0 110 3.08 3.215 19.44  1  0    3    1
## Merc 450SE          16.4   8 275.8 180 3.07 4.070 17.40  0  0    3    3
## Merc 450SL          17.3   8 275.8 180 3.07 3.730 17.60  0  0    3    3
## Merc 450SLC         15.2   8 275.8 180 3.07 3.780 18.00  0  0    3    3
## Maserati Bora       15.0   8 301.0 335 3.54 3.570 14.60  0  1    5    8
## AMC Javelin         15.2   8 304.0 150 3.15 3.435 17.30  0  0    3    2
## Dodge Challenger    15.5   8 318.0 150 2.76 3.520 16.87  0  0    3    2
## Camaro Z28          13.3   8 350.0 245 3.73 3.840 15.41  0  0    3    4
## Ford Pantera L      15.8   8 351.0 264 4.22 3.170 14.50  0  1    5    4
## Hornet Sportabout   18.7   8 360.0 175 3.15 3.440 17.02  0  0    3    2
## Duster 360          14.3   8 360.0 245 3.21 3.570 15.84  0  0    3    4
## Pontiac Firebird    19.2   8 400.0 175 3.08 3.845 17.05  0  0    3    2
## Chrysler Imperial   14.7   8 440.0 230 3.23 5.345 17.42  0  0    3    4
## Lincoln Continental 10.4   8 460.0 215 3.00 5.424 17.82  0  0    3    4
## Cadillac Fleetwood  10.4   8 472.0 205 2.93 5.250 17.98  0  0    3    4
arrange(mtcars, desc(disp)) # on range dans l'ordre croissant
##     mpg cyl  disp  hp drat    wt  qsec vs am gear carb
## 1  10.4   8 472.0 205 2.93 5.250 17.98  0  0    3    4
## 2  10.4   8 460.0 215 3.00 5.424 17.82  0  0    3    4
## 3  14.7   8 440.0 230 3.23 5.345 17.42  0  0    3    4
## 4  19.2   8 400.0 175 3.08 3.845 17.05  0  0    3    2
## 5  18.7   8 360.0 175 3.15 3.440 17.02  0  0    3    2
## 6  14.3   8 360.0 245 3.21 3.570 15.84  0  0    3    4
## 7  15.8   8 351.0 264 4.22 3.170 14.50  0  1    5    4
## 8  13.3   8 350.0 245 3.73 3.840 15.41  0  0    3    4
## 9  15.5   8 318.0 150 2.76 3.520 16.87  0  0    3    2
## 10 15.2   8 304.0 150 3.15 3.435 17.30  0  0    3    2
## 11 15.0   8 301.0 335 3.54 3.570 14.60  0  1    5    8
## 12 16.4   8 275.8 180 3.07 4.070 17.40  0  0    3    3
## 13 17.3   8 275.8 180 3.07 3.730 17.60  0  0    3    3
## 14 15.2   8 275.8 180 3.07 3.780 18.00  0  0    3    3
## 15 21.4   6 258.0 110 3.08 3.215 19.44  1  0    3    1
## 16 18.1   6 225.0 105 2.76 3.460 20.22  1  0    3    1
## 17 19.2   6 167.6 123 3.92 3.440 18.30  1  0    4    4
## 18 17.8   6 167.6 123 3.92 3.440 18.90  1  0    4    4
## 19 21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4
## 20 21.0   6 160.0 110 3.90 2.875 17.02  0  1    4    4
## 21 24.4   4 146.7  62 3.69 3.190 20.00  1  0    4    2
## 22 19.7   6 145.0 175 3.62 2.770 15.50  0  1    5    6
## 23 22.8   4 140.8  95 3.92 3.150 22.90  1  0    4    2
## 24 21.4   4 121.0 109 4.11 2.780 18.60  1  1    4    2
## 25 26.0   4 120.3  91 4.43 2.140 16.70  0  1    5    2
## 26 21.5   4 120.1  97 3.70 2.465 20.01  1  0    3    1
## 27 22.8   4 108.0  93 3.85 2.320 18.61  1  1    4    1
## 28 30.4   4  95.1 113 3.77 1.513 16.90  1  1    5    2
## 29 27.3   4  79.0  66 4.08 1.935 18.90  1  1    4    1
## 30 32.4   4  78.7  66 4.08 2.200 19.47  1  1    4    1
## 31 30.4   4  75.7  52 4.93 1.615 18.52  1  1    4    2
## 32 33.9   4  71.1  65 4.22 1.835 19.90  1  1    4    1
mtcars[order(-mtcars$disp),] # équivalent classique
##                      mpg cyl  disp  hp drat    wt  qsec vs am gear carb
## Cadillac Fleetwood  10.4   8 472.0 205 2.93 5.250 17.98  0  0    3    4
## Lincoln Continental 10.4   8 460.0 215 3.00 5.424 17.82  0  0    3    4
## Chrysler Imperial   14.7   8 440.0 230 3.23 5.345 17.42  0  0    3    4
## Pontiac Firebird    19.2   8 400.0 175 3.08 3.845 17.05  0  0    3    2
## Hornet Sportabout   18.7   8 360.0 175 3.15 3.440 17.02  0  0    3    2
## Duster 360          14.3   8 360.0 245 3.21 3.570 15.84  0  0    3    4
## Ford Pantera L      15.8   8 351.0 264 4.22 3.170 14.50  0  1    5    4
## Camaro Z28          13.3   8 350.0 245 3.73 3.840 15.41  0  0    3    4
## Dodge Challenger    15.5   8 318.0 150 2.76 3.520 16.87  0  0    3    2
## AMC Javelin         15.2   8 304.0 150 3.15 3.435 17.30  0  0    3    2
## Maserati Bora       15.0   8 301.0 335 3.54 3.570 14.60  0  1    5    8
## Merc 450SE          16.4   8 275.8 180 3.07 4.070 17.40  0  0    3    3
## Merc 450SL          17.3   8 275.8 180 3.07 3.730 17.60  0  0    3    3
## Merc 450SLC         15.2   8 275.8 180 3.07 3.780 18.00  0  0    3    3
## Hornet 4 Drive      21.4   6 258.0 110 3.08 3.215 19.44  1  0    3    1
## Valiant             18.1   6 225.0 105 2.76 3.460 20.22  1  0    3    1
## Merc 280            19.2   6 167.6 123 3.92 3.440 18.30  1  0    4    4
## Merc 280C           17.8   6 167.6 123 3.92 3.440 18.90  1  0    4    4
## Mazda RX4           21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4
## Mazda RX4 Wag       21.0   6 160.0 110 3.90 2.875 17.02  0  1    4    4
## Merc 240D           24.4   4 146.7  62 3.69 3.190 20.00  1  0    4    2
## Ferrari Dino        19.7   6 145.0 175 3.62 2.770 15.50  0  1    5    6
## Merc 230            22.8   4 140.8  95 3.92 3.150 22.90  1  0    4    2
## Volvo 142E          21.4   4 121.0 109 4.11 2.780 18.60  1  1    4    2
## Porsche 914-2       26.0   4 120.3  91 4.43 2.140 16.70  0  1    5    2
## Toyota Corona       21.5   4 120.1  97 3.70 2.465 20.01  1  0    3    1
## Datsun 710          22.8   4 108.0  93 3.85 2.320 18.61  1  1    4    1
## Lotus Europa        30.4   4  95.1 113 3.77 1.513 16.90  1  1    5    2
## Fiat X1-9           27.3   4  79.0  66 4.08 1.935 18.90  1  1    4    1
## Fiat 128            32.4   4  78.7  66 4.08 2.200 19.47  1  1    4    1
## Honda Civic         30.4   4  75.7  52 4.93 1.615 18.52  1  1    4    2
## Toyota Corolla      33.9   4  71.1  65 4.22 1.835 19.90  1  1    4    1

Utilisation de l’operateur ‘%>%’ pour plus de souplesse

mtcars %>% select(drat, wt, am) %>% filter(drat < 3) %>% arrange(desc(wt)) 
##   drat   wt am
## 1 2.93 5.25  0
## 2 2.76 3.52  0
## 3 2.76 3.46  0
f1 <- mtcars[c("drat", "wt", "am")]
f2 <- f1[f1$drat < 3,]
f3 <- f2[order(-f2$wt),]
f3
##                    drat   wt am
## Cadillac Fleetwood 2.93 5.25  0
## Dodge Challenger   2.76 3.52  0
## Valiant            2.76 3.46  0

12) Comment avoir une interactions avec une base de données

library(RMySQL)
## Loading required package: DBI
library(pool)

connectDB <- function() {
  pool <- dbPool(
    drv = RMySQL::MySQL(),
    dbname = "earthworms",
    host = "localhost",
    username = "root",
    password = "mbb"
  )
  return(pool)
}

#' Get the data in range from data base
#' @param name a character : the name of table in DB
#' @param start a character : the start Timestamp 
#' @param end a character : the end Timestamp 
#' @return a data.frame
get_data_in_range <- function(name, start, end) {
  pool = connectDB()
  sql <- paste0("select `Timestamp`, `Value` from `", name, "` WHERE `Timestamp` between '", start, "' AND '", end, "';")
  #print(sql)
  query <- suppressWarnings(sqlInterpolate(pool, sql))
  data <- suppressWarnings(dbGetQuery(pool, query))
  poolClose(pool) #important
  return(data)
}

# TAIR m1 consigne
data <- get_data_in_range("cfp_mac1_vir_cons_t_regul", "2018-03-03 07:19:38", "2018-03-03 18:36:14")

mean(data$Value)
## [1] 3.838089
max(data$Value)
## [1] 5.5315
min(data$Value)
## [1] 1.6365
max(data$Timestamp)
## [1] "2018-03-03 18:36:03"
min(data$Timestamp)
## [1] "2018-03-03 07:19:51"

Questions ?