Cours
Maîtrisez les boucles for et d’autres fonctions essentielles de R avec notre cours d’introduction à R.
Parcourir un vecteur avec une boucle
Quand vous savez combien de fois vous souhaitez répéter une action, une boucle for est une bonne option. L’idée d’une boucle for est d’avancer pas à pas dans une séquence et d’exécuter une action à chaque étape. Cette séquence est souvent un vecteur de nombres (comme la séquence 1:10), mais il peut aussi s’agir de nombres dans un ordre quelconque comme c(2, 5, 4, 6), voire d’une séquence de caractères !
for (value in sequence) {
code
}
En clair : « pour chaque valeur de ma séquence, exécute ce code. » Par exemple : « pour chaque ligne de mon data frame, affiche la colonne 1 », ou « pour chaque mot de ma phrase, vérifie si ce mot est DataCamp. »
Essayons ! Vous allez d’abord créer une boucle qui affiche les valeurs d’une séquence de 1 à 10. Puis vous modifierez cette boucle pour additionner les valeurs de 1 à 10 : à chaque itération, la valeur suivante est ajoutée à la somme courante.
Instructions
Un vecteur seq a été créé pour vous. Complétez la boucle for en utilisant seq comme séquence. Affichez value à chaque itération. Une variable sum a aussi été créée. Utilisez la boucle pour additionner les nombres de seq. À chaque itération, ajoutez value à sum, puis affichez sum.
Si tout est clair, passez à l’exercice suivant ! Sinon, voici une vidéo récapitulative.
Vidéo d’ensemble sur les boucles for en R
Parcourir les lignes d’un data frame
Imaginez que vous vous intéressiez aux jours où le cours d’Apple dépasse 117. S’il passe au-dessus, vous voulez afficher la date du jour concerné et le cours de l’action. Si vous avez un data frame stock avec une colonne date et une colonne de prix apple, pouvez-vous parcourir les lignes pour y parvenir ? Bien sûr !
Avant cela, notez que vous pouvez obtenir le nombre de lignes de votre data frame avec nrow(stock). Vous pouvez ensuite créer une séquence à parcourir avec 1:nrow(stock).
for (row in 1:nrow(stock)) {
price <- stock[row, "apple"]
date <- stock[row, "date"]
if(price > 117) {
print(paste("On", date,
"the stock price was", price))
}
}
[1] "On 2016-12-21 the stock price was 117.06"
[1] "On 2016-12-27 the stock price was 117.26"
Cela mobilise plusieurs notions vues jusqu’ici : instructions if, sous-ensembles de vecteurs, conditions et boucles ! Bravo pour vos progrès !
Instructions
stock est disponible dans votre environnement.
Complétez la boucle for pour que ce qui suit soit vrai :
pricedoit contenir le prix à l’itération courantedatedoit contenir la date à l’itération courante- Cette fois, vous voulez savoir si
appledépasse116. - Si c’est le cas, affichez
dateetprice. - Si c’est en dessous de
116, affichez ladateet indiquez que ce n’était pas un jour important !
Parcourir les éléments d’une matrice
Jusqu’ici, vous avez itéré sur des types de données à une dimension. Si vous souhaitez parcourir les éléments d’une matrice (colonnes et lignes), vous devrez utiliser des boucles imbriquées. Vous allez appliquer ce principe pour afficher les corrélations entre trois actions.
Le plus simple est d’imaginer que vous commencez à la ligne 1, puis vous vous déplacez vers la droite : col1, col2, … jusqu’à la dernière colonne de la ligne 1. Ensuite, vous descendez à la ligne 2 et vous répétez.
my_matrix
[,1] [,2]
[1,] "r1c1" "r1c2"
[2,] "r2c1" "r2c2"
# Loop over my_matrix
for(row in 1:nrow(my_matrix)) {
for(col in 1:ncol(my_matrix)) {
print(my_matrix[row, col])
}
}
[1] "r1c1"
[1] "r1c2"
[1] "r2c1"
[1] "r2c2"
Instructions
La matrice de corrélation corr est disponible dans votre environnement.
- Affichez
corrpour avoir un aperçu des données. - Complétez la boucle imbriquée ! Elle doit respecter les points suivants :
- La boucle externe doit parcourir les
rowdecorr. - La boucle interne doit parcourir les
coldecorr. - L’instruction d’affichage doit imprimer les noms de la colonne et de la ligne courantes, ainsi que leur corrélation.
- La boucle externe doit parcourir les
Consultez aussi notre tutoriel sur les boucles en R.