Accéder au contenu principal

Tutoriel sur les conditionnelles et le contrôle de flux en R

Découvrez les opérateurs relationnels pour comparer des objets R et les opérateurs logiques pour combiner les valeurs booléennes TRUE et FALSE. Vous construirez aussi des instructions conditionnelles.
Actualisé 19 sept. 2026  · 13 min lire

Explorer avec l’IA

ChatGPTClaudePerplexity

Organigramme des instructions de contrôle de flux
Contrôle de flux (Source : w3schools)

Opérateurs relationnels

Les opérateurs relationnels, également appelés comparateurs, permettent d’évaluer la relation entre deux objets R. Par exemple, vous pouvez vérifier si deux objets sont égaux avec l’opérateur == (double égal). Un test logique qui est TRUE des deux côtés renverra la valeur logique TRUE, puisque TRUE est égal à TRUE, comme ci-dessous.

TRUE == TRUE
TRUE

En revanche, si vous avez TRUE d’un côté et FALSE de l’autre, le résultat sera FALSE.

TRUE == FALSE
FALSE

Au-delà des variables logiques, vous pouvez tester l’égalité d’autres types.

Comparons des chaînes et des nombres.

100 == 100
TRUE
100 == 200
FALSE
'tutorial' == 'R'
FALSE
  • L’opposé de l’opérateur d’égalité est l’opérateur de différence, noté != (point d’exclamation suivi d’un égal).

Toutes les conditions qui étaient auparavant FALSE deviennent alors TRUE : vérifions !

100 != 200
TRUE
'tutorial' != 'R'
TRUE
TRUE != FALSE
TRUE

De même, l’opérateur de différence s’applique aux nombres et à d’autres objets R comme les matrices, vecteurs et listes.

  • Si vous souhaitez savoir lequel de deux objets R est supérieur ou inférieur à l’autre, utilisez simplement < et > (inférieur à / supérieur à).

    Voyons d’abord un exemple numérique.

2 > 10
FALSE
-200 < 0
TRUE

Il va de soi que 2 n’est pas supérieur à 10 et que -200 est inférieur à 0. Mais qu’en est-il des chaînes ? Voyons comment R s’en sort.

R se base sur l’ordre alphabétique pour comparer les chaînes ou caractères.

Dans l’exemple ci-dessous, comme t vient après R dans l’alphabet, t est considéré comme supérieur à R.

'tutorial' > 'RRRRRRRRR'
TRUE

Notez également que, en R comme dans la plupart des langages, TRUE est interprété numériquement comme 1 et FALSE comme 0. Dans cette logique, TRUE est donc supérieur à FALSE.

TRUE > FALSE
TRUE
  • Vous pouvez aussi tester si un objet R est supérieur ou égal (>=) (ou inférieur ou égal <=) à un autre. Pour cela, combinez le signe inférieur/supérieur avec l’égal. Si l’une des deux conditions (inférieur ou égal / supérieur ou égal) est TRUE, l’ensemble de la condition est TRUE.
5 >= 5 # 5 n'est pas strictement supérieur à 5 mais égal, donc TRUE.
TRUE
5 >= 10
FALSE

Vous pouvez en savoir plus sur les types de données R dans ce tutoriel DataCamp. R gère très bien les listes, matrices et vecteurs.

Les comparateurs R fonctionnent-ils avec les vecteurs ? Voyons.

Supposons un vecteur ligne enregistrant le nombre de vues de votre dernier tutoriel DataCamp sur 10 jours. Vous voulez identifier les jours avec au moins 100 vues. Utilisez l’opérateur « supérieur ou égal ».

datacamp_views <- c(100,20,5,200,60,88,190,33,290,64)
length(datacamp_views)
10
datacamp_views >= 100
  1. TRUE
  2. FALSE
  3. FALSE
  4. TRUE
  5. FALSE
  6. FALSE
  7. TRUE
  8. FALSE
  9. TRUE
  10. FALSE

Comme on le voit, pour les 1er, 4e, 7e et 9e éléments, le résultat est TRUE : ces jours-là, les vues étaient supérieures ou égales à 100.

De même, vous pouvez comparer deux vecteurs, voire deux matrices.

youtube_views <- c(10,20,1000,64,100,9,19,3,90,4)

De cette manière, vous pouvez créer une petite application pour savoir quand vos vues DataCamp dépassent celles de YouTube, ou l’inverse.

En R, la comparaison se fait élément par élément. Par exemple, pour le premier élément de chaque vecteur, DataCamp vaut 100 et l’autre 10 ; le résultat est donc TRUE.

datacamp_views > youtube_views
  1. TRUE
  2. FALSE
  3. FALSE
  4. TRUE
  5. FALSE
  6. TRUE
  7. TRUE
  8. TRUE
  9. TRUE
  10. TRUE

Comparons rapidement deux expressions numériques. Si vous vous souvenez de la règle BODMAS/PEMDAS (priorité aux parenthèses, division, multiplication, addition, soustraction), vous l’appliquerez pour évaluer ces deux expressions R.

-6 * 5 + 2 >= -10 + 1 # à gauche, on fait d'abord la multiplication puis l'addition (BODMAS)
FALSE

Maîtrisez vos compétences en matière de données avec DataCamp

Plus de 10 millions de personnes apprennent Python, R, SQL et d'autres compétences techniques grâce à nos cours pratiques élaborés par des experts du secteur.

Commencer À Apprendre
learner-on-couch@2x.jpg

Comparer des matrices

La capacité de R à comparer différentes structures de données ne s’arrête pas aux vecteurs. Les matrices et les opérateurs relationnels fonctionnent tout aussi bien ensemble !

Plutôt que des vecteurs (comme dans l’exemple précédent), les données DataCamp et YouTube sont maintenant stockées dans une matrice appelée views. La première ligne contient les informations DataCamp, la seconde celles de YouTube. Vous utiliserez la fonction matrix de R pour créer cette matrice à partir des vecteurs datacamp et youtube définis plus haut.

datacamp_views <- c(100,20,5,200,60,88,190,33,290,64)
youtube_views <- c(10,20,1000,64,100,9,19,3,90,4)
views <- matrix(c(datacamp_views, youtube_views), nrow = 2, byrow = TRUE)
views
Une matrice : 2 × 10 de type dbl
100 20 5 200 60 88 190 33 290 64
10 20 1000 64 100 9 19 3 90 4

Identifions les positions où les vues, côté DataCamp comme YouTube, sont égales à 20.

views == 20
Une matrice : 2 × 10 de type lgl
FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE

Parfait ! Maintenant que vous maîtrisez les opérateurs relationnels, passons aux opérateurs logiques.

Opérateurs logiques

R vous permet de combiner les résultats des opérateurs relationnels grâce aux opérateurs logiques suivants :

  • opérateur AND ( & )
  • opérateur OR ( | )
  • opérateur NOT ( ! )

Passons-les en revue.

  • Opérateur AND : comme dans tout langage de programmation, l’opérateur AND de R prend deux valeurs logiques et renvoie TRUE uniquement si les deux sont vraies ; sinon il renvoie FALSE.
Table de vérité de l'opérateur AND
Table de vérité de AND

Voyons quelques exemples parlants.
TRUE & TRUE # 1.1 = 1
TRUE
TRUE & FALSE # 1.0 = 0
FALSE
FALSE & FALSE # 0.0 = 0
FALSE
FALSE & TRUE # 0.1 = 0
FALSE

Vous pouvez aussi utiliser le résultat de comparateurs plutôt que des valeurs logiques explicites.

x <- 100
x < 200 & x >= 100  # x est bien < 200 et ≥ 100, donc TRUE.
TRUE
x < 200 & x > 100 # ici FALSE, car la seconde comparaison (x > 100) est fausse.
FALSE
  • Opérateur OR : similaire à AND, mais l’expression OR est TRUE si au moins l’une des deux valeurs logiques est TRUE.
Table de vérité de l'opérateur OR
Table de vérité de OR

Voyons quelques exemples parlants.
TRUE | TRUE # 1 + 1 = 1
TRUE
TRUE | FALSE # 1 + 0 = 1
TRUE
FALSE | FALSE # 0 + 0 = 0
FALSE
FALSE | TRUE # 0 + 1 = 1
TRUE

Reprenons le même exemple numérique ; cette fois, le résultat diffère.

x <- 100
x < 200 | x > 100 # TRUE car la première comparaison (x < 200) est vraie.
TRUE
  • Opérateur NOT : le plus simple à comprendre : il nie la valeur logique à laquelle il s’applique, c’est l’opposé.
Table de vérité de l'opérateur NOT
Table de vérité de NOT

Quelques exemples :

a = 1
!a # renvoie FALSE : non de 1 correspond à 0, donc FALSE.
FALSE
a = 0
!a # ici TRUE : a = 0 et non de 0 vaut 1.
TRUE

Voyons des cas utiles avec les fonctions natives de R.

is.numeric(5) # renvoie TRUE car 5 est numérique
TRUE
!is.numeric(5) # la négation renvoie FALSE
FALSE
is.numeric('aditya')
FALSE

L’exemple ci-dessous est utile quand vous traitez un mélange de nombres et de chaînes et souhaitez filtrer les chaînes (caractères) pour ne conserver que les données numériques.

!is.numeric('aditya')
TRUE

Terminons en voyant comment les opérateurs logiques fonctionnent avec les vecteurs et matrices.

a <- c(FALSE, TRUE, FALSE)
b <- c(TRUE, TRUE, FALSE)
a & b # opérateur AND
  1. FALSE
  2. TRUE
  3. FALSE
a | b # opérateur OR
  1. TRUE
  2. TRUE
  3. FALSE

Comme le montrent ces sorties, tout comme pour les comparateurs, les opérateurs logiques s’appliquent élément par élément.

En revanche, l’opérateur NOT ne s’applique qu’à un seul vecteur à la fois, ou au résultat d’une opération sur deux vecteurs.

!a
  1. TRUE
  2. FALSE
  3. TRUE
!b
  1. FALSE
  2. FALSE
  3. TRUE

Dans l’exemple ci-dessous, NOT est appliqué au résultat de a | b (placé entre parenthèses). On parle aussi d’opérateur NOR (Not-OR).

!(a | b) # opérateur NOR
  1. FALSE
  2. FALSE
  3. TRUE

Avant de passer aux instructions conditionnelles, faisons un petit exercice.

Reprenez le vecteur des vues du tutoriel DataCamp défini plus haut. Extrayez-en le dernier élément avec la fonction tail de R.

last <- tail(datacamp_views,1)
print (last)
[1] 64

Vérifiez si ce dernier élément est strictement inférieur à 100 ou supérieur à 100.

last < 100 | last > 100
TRUE

Puisque la dernière valeur est inférieure à 100, l’une des deux conditions est satisfaite : le résultat est donc TRUE.

Passons au dernier thème de ce tutoriel : les instructions conditionnelles !

Instructions conditionnelles

Vous avez vu les opérateurs relationnels (pour relier des objets R entre eux) et les opérateurs logiques (pour combiner des valeurs logiques). R permet de combiner ces opérateurs et d’utiliser le résultat pour piloter le comportement de vos scripts. Entrons dans les instructions if et else.

La syntaxe de if est la suivante : if(condition){ // expression } L’instruction if prend une condition (entre parenthèses) basée sur un opérateur relationnel ou logique ; si cette condition est TRUE, le code R entre accolades est exécuté. Simple, n’est-ce pas ?

Exemple :

Supposons une variable x égale à -10. Vous testez si x est supérieur à zéro et vous nie(z) cette condition avec NOT. Comme la condition est TRUE, le code entre accolades s’exécute.

x <- -10
if (!x > 0){
    print("x is a negative number")
}
[1] "x is a negative number"

Si vous supprimez NOT, la condition devient FALSE et le code entre accolades ne s’exécute pas.

if (x > 0){
    print("x is a positive number")
}

La syntaxe de else est : if(condition){ // expression1 }else{ // expression2 } Contrairement à if, else n’a pas de condition propre : il s’utilise avec if. Le code associé à else s’exécute uniquement si la condition du if est FALSE.

Reprenons l’exemple précédent pour illustrer else.

x <- -10
if (x > 0){
    print("x is a positive number")
}else{
    print("x is a negative number")
}
[1] "x is a negative number"

Ici, la condition du if étant FALSE, c’est le bloc else qui s’exécute.

Entre if et else, vous pouvez insérer else if. Il s’exécute lorsque la condition du if n’est pas satisfaite. En bref, else arrive en dernier : if(condition){ // expression1 }else if(condition){ // expression2 }else{ // expression3 }

x <- 0
if (x > 0){
    print("x is a positive number")
}else if (x == 0){
    print("x is zero")
}else{
    print("x is a negative number")
}
[1] "x is zero"

On recourt souvent à else if lorsque les conditions ne sont pas mutuellement exclusives (elles peuvent être vraies en même temps). Exemple :

x <- 12
if (x %% 3 == 0){
    print("x is divisible by 3")
}else if (x %% 4 == 0){
    print("x is divisible by 4")
}else{
    print("x is neither divisible by 3 nor by 4")
}
[1] "x is divisible by 3"

Dans cet exemple, la première condition if étant TRUE, R quitte la structure de contrôle sans évaluer les suivantes, même si la condition else if aurait aussi donné TRUE. Si vous aviez utilisé un second if indépendant, il aurait été évalué lui aussi.

Conclusion

Félicitations, vous avez terminé ce tutoriel.

C’est un bon point de départ pour découvrir le langage R. Entraînez-vous en utilisant les opérateurs relationnels et logiques comme conditions dans des instructions conditionnelles.

D’autres sujets restent à couvrir en R, comme les utilitaires et l’apprentissage automatique, qui feront l’objet de prochains tutoriels. Restez à l’écoute !

N’hésitez pas à poser vos questions en commentaire ci-dessous.

Pour aller plus loin en R, suivez le cours Intermediate R de DataCamp.

Sujets
R
Science des données

En savoir plus sur R

Cours

R niveau intermédiaire

6 h
676.2K
Poursuivez votre parcours pour devenir un ninja de R en vous familiarisant avec les instructions conditionnelles, les boucles et les fonctions vectorielles.
Afficher les détailsRight Arrow
Commencer Le Cours
Voir plusRight Arrow