Maîtrisez les boucles for et d’autres fonctions essentielles de R avec notre cours d’introduction à R.
Parcourir un vecteur
Lorsque vous savez combien de fois vous voulez répéter une action, une boucle for est une bonne option. L’idée est de parcourir une séquence, élément par élément, et d’exécuter une action à chaque étape. Cette séquence est souvent un vecteur de nombres (comme la séquence 1:10), mais elle peut aussi être une suite non ordonnée comme c(2, 5, 4, 6), ou même une séquence de caractères !
Autrement dit : « pour chaque valeur de ma séquence, exécute ce code. » Par exemple : « pour chaque ligne de mon data frame, afficher la colonne 1 », ou « pour chaque mot de ma phrase, vérifier s’il s’agit de 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 ces valeurs : à chaque itération, la valeur suivante de la séquence sera ajoutée à une somme cumulée.
Consignes
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
Supposons que vous vous intéressiez aux jours où le cours de l’action Apple dépasse 117. S’il franchit ce seuil, vous souhaitez afficher la date du jour et le cours correspondant. Si vous avez un data frame stock avec une colonne date et une colonne de prix apple, pouvez-vous parcourir les lignes du data frame pour le faire ? Absolument !
Avant cela, notez que vous pouvez obtenir le nombre de lignes avec nrow(stock). Vous pouvez alors créer une séquence à parcourir de 1:nrow(stock).
for(row in1: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"Propulsé par
Cela mobilise déjà plusieurs notions vues jusqu’ici : instructions if, sous-ensembles de vecteurs, conditions et boucles. Bravo pour vos progrès !
Consignes
stock est disponible dans votre environnement de travail.
Complétez les blancs de la boucle for pour respecter les points suivants :
price doit contenir le prix à cette itération
date doit contenir la date à cette itération
Cette fois, vous voulez savoir si apple dépasse 116.
Si oui, affichez la date et le price.
Si le prix est inférieur à 116, affichez la date et indiquez que ce n’était pas une journée importante !
Parcourir les éléments d’une matrice
Jusqu’ici, vous avez parcouru des structures à une dimension. Si vous souhaitez itérer sur les éléments d’une matrice (colonnes et lignes), vous devrez utiliser des boucles imbriquées. Vous appliquerez ce principe pour afficher les corrélations entre trois actions.
Le plus simple est de visualiser le parcours ainsi : vous commencez à la ligne 1, vous avancez vers la droite en passant par col1, col2, ..., jusqu’à la dernière colonne de la ligne 1. Puis vous descendez à la ligne 2 et vous recommencez.
my_matrix
[,1][,2][1,]"r1c1""r1c2"[2,]"r2c1""r2c2"# Loop over my_matrixfor(row in1:nrow(my_matrix)){for(col in1:ncol(my_matrix)){
print(my_matrix[row, col])}}[1]"r1c1"[1]"r1c2"[1]"r2c1"[1]"r2c2"Propulsé par
Consignes
La matrice de corrélation corr est disponible dans votre espace de travail.
Affichez corr pour en avoir un aperçu.
Complétez la boucle imbriquée afin de respecter les points suivants :
La boucle externe doit parcourir les rows de corr.
La boucle interne doit parcourir les cols de corr.
L’instruction d’affichage doit imprimer les noms de la colonne et de la ligne courantes, ainsi que leur corrélation.
# Print out corr
# Create a nested loop
for(row in 1:nrow(___)) {
for(col in 1:___(corr)) {
print(paste(colnames(corr)[___], "and", rownames(corr)[___],
"have a correlation of", corr[row,col]))
}
}
Poursuivez votre parcours pour devenir un ninja de R en vous familiarisant avec les instructions conditionnelles, les boucles et les fonctions vectorielles.
Maîtrisez les boucles for et d’autres fonctions essentielles de R avec notre cours d’introduction à R.
Parcourir un vecteur
Lorsque vous savez combien de fois vous voulez répéter une action, une boucle for est une bonne option. L’idée est de parcourir une séquence, élément par élément, et d’exécuter une action à chaque étape. Cette séquence est souvent un vecteur de nombres (comme la séquence
1:10), mais elle peut aussi être une suite non ordonnée commec(2, 5, 4, 6), ou même une séquence de caractères !Autrement dit : « pour chaque valeur de ma séquence, exécute ce code. » Par exemple : « pour chaque ligne de mon data frame, afficher la colonne 1 », ou « pour chaque mot de ma phrase, vérifier s’il s’agit de 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 ces valeurs : à chaque itération, la valeur suivante de la séquence sera ajoutée à une somme cumulée.
Consignes
Un vecteur
seqa été créé pour vous. Complétez la boucle for en utilisantseqcomme séquence. Affichezvalueà chaque itération. Une variablesuma aussi été créée. Utilisez la boucle pour additionner les nombres deseq. À chaque itération, ajoutezvalueàsum, puis affichezsum.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
Supposons que vous vous intéressiez aux jours où le cours de l’action Apple dépasse
117. S’il franchit ce seuil, vous souhaitez afficher la date du jour et le cours correspondant. Si vous avez un data framestockavec une colonnedateet une colonne de prixapple, pouvez-vous parcourir les lignes du data frame pour le faire ? Absolument !Avant cela, notez que vous pouvez obtenir le nombre de lignes avec
nrow(stock). Vous pouvez alors créer une séquence à parcourir de1:nrow(stock).Cela mobilise déjà plusieurs notions vues jusqu’ici : instructions if, sous-ensembles de vecteurs, conditions et boucles. Bravo pour vos progrès !
Consignes
stockest disponible dans votre environnement de travail.Complétez les blancs de la boucle for pour respecter les points suivants :
pricedoit contenir le prix à cette itérationdatedoit contenir la date à cette itérationappledépasse116.dateet leprice.116, affichez ladateet indiquez que ce n’était pas une journée importante !Parcourir les éléments d’une matrice
Jusqu’ici, vous avez parcouru des structures à une dimension. Si vous souhaitez itérer sur les éléments d’une matrice (colonnes et lignes), vous devrez utiliser des boucles imbriquées. Vous appliquerez ce principe pour afficher les corrélations entre trois actions.
Le plus simple est de visualiser le parcours ainsi : vous commencez à la ligne 1, vous avancez vers la droite en passant par col1, col2, ..., jusqu’à la dernière colonne de la ligne 1. Puis vous descendez à la ligne 2 et vous recommencez.
Consignes
La matrice de corrélation
correst disponible dans votre espace de travail.corrpour en avoir un aperçu.rows decorr.cols decorr.Consultez aussi notre tutoriel sur les boucles en R.