0Pricing
R Academy · Leçon

Opérateurs logiques et logique booléenne

Comprenez &, |, !, xor(), any() et all() pour les opérations booléennes.

Opérateurs logiques et logique booléenne est une leçon R Academy gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage R Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours R Academy comprend 4 leçons au total.

Introduction à la logique booléenne

La logique booléenne est le fondement de la prise de décision en programmation. Dans R, les valeurs logiques sont TRUE et FALSE. Les opérateurs logiques combinent ces valeurs pour former des conditions complexes.

# Boolean values in R
is_raining <- TRUE
is_cold <- FALSE
cat('Is raining:', is_raining, '
')
cat('Is cold:', is_cold, '
')
cat('Class:', class(is_raining), '
')

ET élément par élément avec &

L’opérateur & effectue un ET élément par élément sur les vecteurs. Il renvoie TRUE uniquement lorsque les deux éléments correspondants valent TRUE. Il traite chaque élément d’un vecteur.

ages <- c(15, 22, 17, 30, 19)
has_id <- c(FALSE, TRUE, FALSE, TRUE, TRUE)

# Can buy alcohol? (must be 18+ AND have ID)
can_buy <- (ages >= 18) & has_id
cat('Ages >= 18:', ages >= 18, '
')
cat('Has ID:', has_id, '
')
cat('Can buy:', can_buy, '
')

OU élément par élément avec |

L’opérateur | effectue un OU élément par élément. Il renvoie TRUE lorsqu’au moins un des éléments correspondants vaut TRUE.

scores_math <- c(85, 45, 72, 38, 90)
scores_english <- c(40, 88, 65, 70, 55)

# Pass if either subject >= 60
passes <- (scores_math >= 60) | (scores_english >= 60)
cat('Math pass:', scores_math >= 60, '
')
cat('English pass:', scores_english >= 60, '
')
cat('Overall pass:', passes, '
')

NON logique avec !

L’opérateur ! nie une valeur logique : il transforme TRUE en FALSE, et inversement. Il est appliqué avant & et | dans l’ordre d’évaluation.

is_weekend <- c(TRUE, FALSE, FALSE, FALSE, FALSE, TRUE, TRUE)
cat('Is weekend:', is_weekend, '
')
cat('Is weekday:', !is_weekend, '
')

# Count weekdays
cat('Number of weekdays:', sum(!is_weekend), '
')

ET scalaire avec &&

&& est la version scalaire de ET : elle n’évalue que le premier élément de chaque vecteur et utilise une évaluation en court-circuit : si le côté gauche vaut FALSE, le côté droit n’est jamais évalué.

x <- 10

# Short-circuit: second condition skipped if first is FALSE
if (x > 0 && x < 100) {
  cat('x is a positive double-digit or less
')
}

# && only looks at first element
cat('TRUE && FALSE:', TRUE && FALSE, '
')
cat('TRUE & FALSE (vectorised):', TRUE & FALSE, '
')

OU scalaire avec ||

|| est la version scalaire de OU avec une évaluation en court-circuit : si le côté gauche vaut TRUE, le côté droit n’est jamais évalué. Utilisez || dans les instructions if lorsque vous n’avez besoin que d’un seul résultat.

user_role <- 'admin'

# Short-circuit OR — stops at first TRUE
if (user_role == 'admin' || user_role == 'superuser') {
  cat('Access granted
')
} else {
  cat('Access denied
')
}

cat('FALSE || TRUE:', FALSE || TRUE, '
')

OU exclusif avec xor()

xor(x, y) renvoie TRUE lorsqu’exactement un des deux éléments x ou y vaut TRUE. Il renvoie FALSE lorsqu’ils ont la même valeur. Cette fonction est utile pour la logique d’activation et de désactivation.

# xor truth table
cat('xor(TRUE, TRUE):', xor(TRUE, TRUE), '
')   # FALSE
cat('xor(TRUE, FALSE):', xor(TRUE, FALSE), '
')  # TRUE
cat('xor(FALSE, TRUE):', xor(FALSE, TRUE), '
')  # TRUE
cat('xor(FALSE, FALSE):', xor(FALSE, FALSE), '
') # FALSE

# Practical: exactly one sensor triggered
sensor_a <- c(TRUE, FALSE, TRUE, FALSE)
sensor_b <- c(FALSE, FALSE, TRUE, TRUE)
cat('Exactly one sensor:', xor(sensor_a, sensor_b), '
')

any() et all()

any() renvoie TRUE si au moins un élément vaut TRUE. all() renvoie TRUE uniquement si tous les éléments valent TRUE. Ces deux fonctions réduisent un vecteur logique à une seule valeur.

temperatures <- c(22.1, 24.5, 19.8, 31.2, 28.0)

cat('Any temperature above 30?', any(temperatures > 30), '
')
cat('All temperatures above 15?', all(temperatures > 15), '
')
cat('All temperatures above 25?', all(temperatures > 25), '
')

# Useful for data validation
test_scores <- c(78, 85, 92, 88, 76)
cat('All passed (>=60)?', all(test_scores >= 60), '
')

Combiner des opérateurs logiques

Vous pouvez enchaîner plusieurs opérateurs logiques pour construire des conditions complexes. R évalue d’abord !, puis &, et enfin |. Utilisez des parenthèses pour rendre votre intention explicite.

age <- 25
income <- 55000
credit_score <- 720

# Loan eligibility: age 21-65, income >= 40000, credit >= 700
eligible <- (age >= 21 && age <= 65) &&
            (income >= 40000) &&
            (credit_score >= 700)
cat('Loan eligible:', eligible, '
')

Opérateurs logiques sur les trames de données

Les opérateurs logiques sont particulièrement utiles pour filtrer les trames de données. Vous pouvez combiner plusieurs conditions afin de sélectionner exactement les lignes nécessaires.

# Simple data frame
names_vec <- c('Alice', 'Bob', 'Carol', 'Dave', 'Eve')
ages_vec <- c(28, 35, 22, 45, 31)
salaries <- c(55000, 72000, 38000, 90000, 61000)

# Filter: age 25-40 AND salary above 50000
mask <- (ages_vec >= 25 & ages_vec <= 40) & (salaries > 50000)
cat('Matching employees:', names_vec[mask], '
')

Arithmétique booléenne

Dans R, TRUE est traité comme 1 et FALSE comme 0 dans les opérations arithmétiques. Vous pouvez donc utiliser sum() pour compter les valeurs TRUE et mean() pour obtenir leur proportion.

responses <- c(TRUE, FALSE, TRUE, TRUE, FALSE, TRUE, FALSE, TRUE)

cat('Number of TRUE:', sum(responses), '
')
cat('Proportion TRUE:', mean(responses), '
')
cat('Percentage:', mean(responses) * 100, '%
')

# Count values meeting a condition
scores <- c(88, 45, 92, 61, 73, 55, 84)
cat('Number passing (>=60):', sum(scores >= 60), '
')

Vérification rapide

Quelle est la différence entre & et && dans R ?

Récapitulatif : logique booléenne en R

Excellent ! Voici les points essentiels à retenir de cette leçon :

  • & et | sont vectorisés : ils comparent les éléments un par un
  • && et || sont scalaires et utilisent une évaluation en court-circuit : utilisez-les dans les instructions if
  • ! nie une valeur logique
  • xor() renvoie TRUE lorsqu’exactement un argument vaut TRUE
  • any() et all() réduisent les vecteurs logiques à une seule valeur
  • TRUE == 1 et FALSE == 0, vous pouvez donc additionner ou calculer la moyenne de vecteurs logiques
# Summary: all logical operators at a glance
x <- c(TRUE, FALSE, TRUE)
y <- c(TRUE, TRUE, FALSE)
cat('x & y :', x & y, '
')
cat('x | y :', x | y, '
')
cat('!x    :', !x, '
')
cat('xor   :', xor(x, y), '
')
cat('any(x):', any(x), '
')
cat('all(x):', all(x), '
')

Questions Fréquemment Posées

La leçon « Opérateurs logiques et logique booléenne » est-elle gratuite ?

Oui — le texte complet de « Opérateurs logiques et logique booléenne » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours R Academy, passe à CoddyKit PRO. Le cours R Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Opérateurs logiques et logique booléenne » ?

Comprenez &, |, !, xor(), any() et all() pour les opérations booléennes. Tu pratiques R Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer R Academy ?

Aucune expérience préalable n'est requise. R Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.

Combien de temps prend la leçon « Opérateurs logiques et logique booléenne » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon R Academy ?

Oui. Chaque leçon R Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Opérateurs arithmétiques et de comparaison
  2. Opérateurs logiques et logique booléenne
  3. Affectation et opérateurs spéciaux
  4. Priorité des opérateurs et expressions complexes
← Retour à R Academy