Exercice 13: for
- Lisez l’aide sur la procédure permettant de réaliser des boucles indicées for (help(“for”)). Remarque : demander de l’aide sur cette procédure avec la syntaxe ?for ne fonctionnera pas! Pourquoi?
- Créer une boucle qui affiche l’indice i de l’itération en cours (10 itérations)
- A l’aide d’une boucle, calculez la somme des entiers pairs compris entre 1 et 100 .
#1
help("for")
#2
for (i in 1:10) print(i)
#3
somme = 0
for (i in seq(2,100,2)) {
somme = somme + i
}
somme
Exercice 14 : for, if et else
- Comme dans l’exercice précédent, lisez l’aide de la procédure conditionnelle if : (help(“if”)).
- Utilisez les structures if et else pour créer un programme qui prend en entrée un réel \(x\) et qui lui associe \(y=x^{2}\) si \(x\) est strictement positif et \(y=x^{3}\) si \(x\) est négatif ou nul. Testez pour les valeurs \(x=\) \(25,-2,12\) et 0 .
- Utilisez les structures if et else pour créer un programme qui imprime à l’écran, pour chaque entier relatif \(i\) compris entre -10 et \(10, i^{3}\) si \(i<=0\), ou \(i^{2}\) si \(i>0\).
#1
help("if")
#2
x = 25
y = 0
if (x > 0){
y = x^2
}
else{
y = x^3
}
#3
for (i in -10:10){
x = i
y = 0
if (x > 0){
y = x^2
}
else{
y = x^3
}
print(paste(i, y, sep=" => "))
}
Exercice 15 : un moyen plus rapide de faire des boucles !
- Créer une matrice matrice contenant des valeurs tirées aléatoirement de dimension 10 lignes x 10 colonnes et dont les éléments suivent une loi normale de moyenne nulle et de variance 2.32 .
- Afficher nombre d’éléments positifs et négatifs de la matrice. Remplacer les nombre négatifs par 0 .
- Afficher les marges de matrice (sommes des valeurs en lignes et en colonnes). Indice : apply, sum
- Afficher la moyenne des lignes et des colonnes de la matrice.
- Un autre moyen d’afficher rapidemment la somme/moyenne des lignes/colonnes d’une matrice, est d’utiliser des fonctions R pré-existantes : rowSums, colSums, rowMeans, colMeans.
#1
matrice = matrix(rnorm(n=100, mean = 0, sd = 2.32),nrow = 10, ncol=10)
#2
nbPos = length(which(matrice > 0))
idxNeg = which(matrice < 0)
nbNeg = length(idxNeg)
matrice[idxNeg] = 0
#3
apply(matrice, 1, sum)
apply(matrice, 2, sum)
#4
apply(matrice, 1, mean)
apply(matrice, 1, mean)
#5
rowSums(matrice); colSums(matrice)
rowMeans(matrice); colMeans(matrice)