Exercice 1
1.
v1 = rep(2, 100)
v2 = rep(c(2, 4, 6), times=c(15, 20, 10))
v3 = (-2):6
v4 = seq(0, 1.6, 0.2)
v5 = 1:25
print(v1)
## [1] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
## [38] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
## [75] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
print(v2)
## [1] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 6 6 6
## [39] 6 6 6 6 6 6 6
print(v3)
## [1] -2 -1 0 1 2 3 4 5 6
print(v4)
## [1] 0.0 0.2 0.4 0.6 0.8 1.0 1.2 1.4 1.6
print(v5)
## [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
2.
mask = v4 == 1
print(mask)
## [1] FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE
# tous FALSE sauf 6e élément. on peut le vérifier:
print(which(mask))
## [1] 6
# on peut visualiser les vecteurs superposés grâce à `rbind`
print(rbind(v3, v4))
## [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9]
## v3 -2 -1.0 0.0 1.0 2.0 3 4.0 5.0 6.0
## v4 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6
mask = v3 <= v4
print(mask)
## [1] TRUE TRUE TRUE FALSE FALSE FALSE FALSE FALSE FALSE
# les 3 premiers éléments sont TRUE
print(which(mask))
## [1] 1 2 3
3.
n_v4 = length(v4)
v6 = c(v1[1:4], v4[(n_v4 - 5):n_v4])
print(v6)
## [1] 2.0 2.0 2.0 2.0 0.6 0.8 1.0 1.2 1.4 1.6
v6 = c(head(v1, 4), tail(v4, 6))
print(v6)
## [1] 2.0 2.0 2.0 2.0 0.6 0.8 1.0 1.2 1.4 1.6
4.
print(v5[-c(5, 10, 15)])
## [1] 1 2 3 4 6 7 8 9 11 12 13 14 16 17 18 19 20 21 22 23 24 25
print(v5[-seq(5, 15, 5)])
## [1] 1 2 3 4 6 7 8 9 11 12 13 14 16 17 18 19 20 21 22 23 24 25
5.
print(prod(v5[1:6]))
## [1] 720
print(prod(1:6))
## [1] 720
Exercice 3
1.
notes = c(
maths=17,
"français"=12,
anglais=10,
phys=15,
informatique=15
)
print(notes)
## maths français anglais phys informatique
## 17 12 10 15 15
2.
matieres = c("maths", "francais", "anglais", "phys", "informatique")
notesbis = c(17, 12, 10, 15, 15)
names(notesbis) = matieres
print(notesbis)
## maths francais anglais phys informatique
## 17 12 10 15 15
3.
a)
mod = mode(notes)
print(mod)
## [1] "numeric"
b)
moy = mean(notes)
print(moy)
## [1] 13.8
c)
croissant = sort(notes)
decroissant = sort(notes, decreasing=TRUE)
print(croissant)
## anglais français phys informatique maths
## 10 12 15 15 17
print(decroissant)
## maths phys informatique français anglais
## 17 15 15 12 10
4.
a)
which(matieres == "anglais")
## [1] 3
b)
print(notes["anglais"])
## anglais
## 10
c)
notes["anglais"] = 14
print(notes)
## maths français anglais phys informatique
## 17 12 14 15 15
print(mean(notes))
## [1] 14.6
5.
names(notes) = NULL
print(notes)
## [1] 17 12 14 15 15
Exercice 4
1.
mat1 <- matrix(
rep(c(1,2,3), 3),
nrow=3,
byrow=TRUE
)
print(mat1)
## [,1] [,2] [,3]
## [1,] 1 2 3
## [2,] 1 2 3
## [3,] 1 2 3
2.
mat2 = rbind(mat1, 4:6)
print(mat2)
## [,1] [,2] [,3]
## [1,] 1 2 3
## [2,] 1 2 3
## [3,] 1 2 3
## [4,] 4 5 6
3.
print(mat2 %*% mat1)
## [,1] [,2] [,3]
## [1,] 6 12 18
## [2,] 6 12 18
## [3,] 6 12 18
## [4,] 15 30 45
4.
a)
print(
rbind(
"somme de la 2e ligne"=sum(mat2[2,]),
"produit de la 3e colonne"=prod(mat2[,3])
)
)
## [,1]
## somme de la 2e ligne 6
## produit de la 3e colonne 162
Exercice 5
1.
df = iris
mask = df$Petal.Length >= 5.0
print(sum(mask))
## [1] 46
2.
iris1 = df[1:50,]
print(iris1)
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1 5.1 3.5 1.4 0.2 setosa
## 2 4.9 3.0 1.4 0.2 setosa
## 3 4.7 3.2 1.3 0.2 setosa
## 4 4.6 3.1 1.5 0.2 setosa
## 5 5.0 3.6 1.4 0.2 setosa
## 6 5.4 3.9 1.7 0.4 setosa
## 7 4.6 3.4 1.4 0.3 setosa
## 8 5.0 3.4 1.5 0.2 setosa
## 9 4.4 2.9 1.4 0.2 setosa
## 10 4.9 3.1 1.5 0.1 setosa
## 11 5.4 3.7 1.5 0.2 setosa
## 12 4.8 3.4 1.6 0.2 setosa
## 13 4.8 3.0 1.4 0.1 setosa
## 14 4.3 3.0 1.1 0.1 setosa
## 15 5.8 4.0 1.2 0.2 setosa
## 16 5.7 4.4 1.5 0.4 setosa
## 17 5.4 3.9 1.3 0.4 setosa
## 18 5.1 3.5 1.4 0.3 setosa
## 19 5.7 3.8 1.7 0.3 setosa
## 20 5.1 3.8 1.5 0.3 setosa
## 21 5.4 3.4 1.7 0.2 setosa
## 22 5.1 3.7 1.5 0.4 setosa
## 23 4.6 3.6 1.0 0.2 setosa
## 24 5.1 3.3 1.7 0.5 setosa
## 25 4.8 3.4 1.9 0.2 setosa
## 26 5.0 3.0 1.6 0.2 setosa
## 27 5.0 3.4 1.6 0.4 setosa
## 28 5.2 3.5 1.5 0.2 setosa
## 29 5.2 3.4 1.4 0.2 setosa
## 30 4.7 3.2 1.6 0.2 setosa
## 31 4.8 3.1 1.6 0.2 setosa
## 32 5.4 3.4 1.5 0.4 setosa
## 33 5.2 4.1 1.5 0.1 setosa
## 34 5.5 4.2 1.4 0.2 setosa
## 35 4.9 3.1 1.5 0.2 setosa
## 36 5.0 3.2 1.2 0.2 setosa
## 37 5.5 3.5 1.3 0.2 setosa
## 38 4.9 3.6 1.4 0.1 setosa
## 39 4.4 3.0 1.3 0.2 setosa
## 40 5.1 3.4 1.5 0.2 setosa
## 41 5.0 3.5 1.3 0.3 setosa
## 42 4.5 2.3 1.3 0.3 setosa
## 43 4.4 3.2 1.3 0.2 setosa
## 44 5.0 3.5 1.6 0.6 setosa
## 45 5.1 3.8 1.9 0.4 setosa
## 46 4.8 3.0 1.4 0.3 setosa
## 47 5.1 3.8 1.6 0.2 setosa
## 48 4.6 3.2 1.4 0.2 setosa
## 49 5.3 3.7 1.5 0.2 setosa
## 50 5.0 3.3 1.4 0.2 setosa
3.
mask = df$Species == "versicolor"
iris2 = df[mask,]
print(iris2)
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 51 7.0 3.2 4.7 1.4 versicolor
## 52 6.4 3.2 4.5 1.5 versicolor
## 53 6.9 3.1 4.9 1.5 versicolor
## 54 5.5 2.3 4.0 1.3 versicolor
## 55 6.5 2.8 4.6 1.5 versicolor
## 56 5.7 2.8 4.5 1.3 versicolor
## 57 6.3 3.3 4.7 1.6 versicolor
## 58 4.9 2.4 3.3 1.0 versicolor
## 59 6.6 2.9 4.6 1.3 versicolor
## 60 5.2 2.7 3.9 1.4 versicolor
## 61 5.0 2.0 3.5 1.0 versicolor
## 62 5.9 3.0 4.2 1.5 versicolor
## 63 6.0 2.2 4.0 1.0 versicolor
## 64 6.1 2.9 4.7 1.4 versicolor
## 65 5.6 2.9 3.6 1.3 versicolor
## 66 6.7 3.1 4.4 1.4 versicolor
## 67 5.6 3.0 4.5 1.5 versicolor
## 68 5.8 2.7 4.1 1.0 versicolor
## 69 6.2 2.2 4.5 1.5 versicolor
## 70 5.6 2.5 3.9 1.1 versicolor
## 71 5.9 3.2 4.8 1.8 versicolor
## 72 6.1 2.8 4.0 1.3 versicolor
## 73 6.3 2.5 4.9 1.5 versicolor
## 74 6.1 2.8 4.7 1.2 versicolor
## 75 6.4 2.9 4.3 1.3 versicolor
## 76 6.6 3.0 4.4 1.4 versicolor
## 77 6.8 2.8 4.8 1.4 versicolor
## 78 6.7 3.0 5.0 1.7 versicolor
## 79 6.0 2.9 4.5 1.5 versicolor
## 80 5.7 2.6 3.5 1.0 versicolor
## 81 5.5 2.4 3.8 1.1 versicolor
## 82 5.5 2.4 3.7 1.0 versicolor
## 83 5.8 2.7 3.9 1.2 versicolor
## 84 6.0 2.7 5.1 1.6 versicolor
## 85 5.4 3.0 4.5 1.5 versicolor
## 86 6.0 3.4 4.5 1.6 versicolor
## 87 6.7 3.1 4.7 1.5 versicolor
## 88 6.3 2.3 4.4 1.3 versicolor
## 89 5.6 3.0 4.1 1.3 versicolor
## 90 5.5 2.5 4.0 1.3 versicolor
## 91 5.5 2.6 4.4 1.2 versicolor
## 92 6.1 3.0 4.6 1.4 versicolor
## 93 5.8 2.6 4.0 1.2 versicolor
## 94 5.0 2.3 3.3 1.0 versicolor
## 95 5.6 2.7 4.2 1.3 versicolor
## 96 5.7 3.0 4.2 1.2 versicolor
## 97 5.7 2.9 4.2 1.3 versicolor
## 98 6.2 2.9 4.3 1.3 versicolor
## 99 5.1 2.5 3.0 1.1 versicolor
## 100 5.7 2.8 4.1 1.3 versicolor