Itération sur les éléments d'un vecteur
Fait partie de la section Fondamentaux du Journey R de Coddy — leçon 63 sur 78.
Bien que les opérations vectorisées de R soient puissantes, vous avez parfois besoin de traiter chaque élément individuellement avec une logique personnalisée. Une boucle for vous permet d'itérer à travers les éléments d'un vecteur un par un.
La manière la plus simple de parcourir un vecteur est d'itérer directement sur ses éléments :
fruits <- c("apple", "banana", "cherry")
for (fruit in fruits) {
print(fruit)
}Sortie :
[1] "apple"
[1] "banana"
[1] "cherry"À chaque itération, la variable de boucle fruit prend la valeur de l'élément suivant dans le vecteur. Cette approche est propre et lisible lorsque vous n'avez besoin que des valeurs elles-mêmes.
Vous pouvez combiner l'itération avec la logique conditionnelle pour traiter les éléments de manière sélective :
numbers <- c(3, 8, 2, 10, 5)
for (num in numbers) {
if (num > 5) {
print(num)
}
}Sortie :
[1] 8
[1] 10Ce modèle est utile lorsque vous devez appliquer différentes opérations en fonction de la valeur de chaque élément, ce que les opérations vectorisées seules ne peuvent pas toujours gérer.
Défi
FacileVous recevrez deux lignes d'entrée :
- Une liste de nombres séparés par des virgules (par exemple,
12,5,18,3,25,8,14) - Une valeur de seuil (par exemple,
10)
En utilisant une boucle for pour itérer sur les éléments du vecteur :
- Créez un vecteur à partir des nombres séparés par des virgules
- Parcourez chaque élément du vecteur
- Pour chaque élément qui est supérieur ou égal à la valeur de seuil, affichez cet élément en utilisant
print()
Par exemple, si les entrées sont :
4,15,8,22,6,19,11
10La sortie devrait être :
[1] 15
[1] 22
[1] 19
[1] 11Explication : La boucle vérifie chaque élément par rapport au seuil (10). Les éléments 15, 22, 19 et 11 sont tous supérieurs ou égaux à 10, ils sont donc affichés. Les éléments 4, 8 et 6 sont ignorés.
Aide-mémoire
Une boucle for vous permet de parcourir les éléments d'un vecteur un par un et d'appliquer une logique personnalisée à chaque élément.
Syntaxe de base pour parcourir un vecteur :
fruits <- c("apple", "banana", "cherry")
for (fruit in fruits) {
print(fruit)
}À chaque itération, la variable de boucle prend la valeur de l'élément suivant dans le vecteur.
Combinaison de boucles avec une logique conditionnelle pour traiter les éléments de manière sélective :
numbers <- c(3, 8, 2, 10, 5)
for (num in numbers) {
if (num > 5) {
print(num)
}
}Ce modèle est utile lorsque vous devez appliquer différentes opérations en fonction de la valeur de chaque élément.
Essayez vous-même
# Lire l'entrée
con <- file("stdin", "r")
numbers_input <- suppressWarnings(readLines(con, n = 1))
threshold <- as.numeric(suppressWarnings(readLines(con, n = 1)))
close(con)
# Convertir la chaîne séparée par des virgules en un vecteur numérique
numbers <- as.numeric(unlist(strsplit(numbers_input, ",")))
# TODO: Écrivez votre code ci-dessous
# Utilisez une boucle for pour parcourir le vecteur numbers
# Pour chaque élément >= threshold, affichez-le en utilisant print()Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Fondamentaux
4Opérateurs - Partie 2
Opérateurs logiques (AND, OR)Opérateurs logiques - Partie 2 (NOT)Récapitulatif - Logique simpleLogique vectorisée - Partie 1Logique vectorisée - Partie 27Calculateur de partage d'addition
Message de bienvenueRécupérer la saisie utilisateur10FizzBuzz avec une variante
Présentation du jeuLa fonction FizzBuzz2Variables et types de données
Type de données numériqueType de données entierType de données caractèreType de données logiqueVérification des types de donnéesConventions de nommageValeurs manquantes : NARécapitulatif - Création de variables8Boucles
Boucle ForBoucle WhileBreakSuivant (Continue)Récapitulatif - FactorielleGénération de séquences (seq, :)Boucles imbriquéesRécapitulatif - Saisie dynamique3Opérateurs, partie 1
Opérateurs arithmétiquesDivision entière et moduloOpérateurs d'affectationRécapitulatif - Mathématiques simplesOpérateurs de comparaison6Entrées/Sorties de base
Affichage avec PrintCat pour l'affichageAffichage avec des variablesLire l'entrée avec readline()Bases de la conversion de typesRécapitulatif - Calculateur d'âgeRécapitulatif - Vrai ou Faux9Fonctions
Déclarer une fonctionArguments de fonctionValeurs de retourRécapitulatif - Fonction SigmaRécapitulatif - Fonction de validationValeurs de paramètres par défaut12Itération sur les séquences
Itération sur les éléments d'un vecteurUtilisation de seq_along()Itération sur les caractères (strsplit)Fonctions de manipulation de chaînes