Menu
Coddy logo textTech

Logique vectorisée - Partie 1

Fait partie de la section Fondamentaux du Journey R de Coddy — leçon 20 sur 78.

R possède deux versions des opérateurs AND (ET) et OR (OU). Vous avez découvert && et ||, qui fonctionnent avec des valeurs uniques. Explorons maintenant leurs équivalents vectorisés : & et | (symboles simples).

La différence clé est que & et | comparent les valeurs élément par élément lorsque l'on travaille avec plusieurs valeurs :

a <- c(TRUE, TRUE, FALSE, FALSE)
b <- c(TRUE, FALSE, TRUE, FALSE)

a & b   # TRUE FALSE FALSE FALSE
a | b   # TRUE TRUE TRUE FALSE

Chaque position est comparée indépendamment. Dans la première position, a et b sont tous deux TRUE, donc a & b retourne TRUE. Dans la deuxième position, a est TRUE mais b est FALSE, donc a & b retourne FALSE.

Cela devient puissant lorsqu'on le combine avec des opérateurs de comparaison :

scores <- c(85, 42, 91, 67, 55)

# Vérifier quels scores sont compris entre 50 et 80
scores >= 50 & scores <= 80  # FALSE FALSE FALSE TRUE TRUE

Le résultat est un vecteur de valeurs logiques indiquant quels éléments remplissent les deux conditions. Ce comportement élément par élément est essentiel pour filtrer et analyser des données dans R.

challenge icon

Défi

Facile

Utilisez les opérateurs vectorisés ET (&) et OU (|) pour effectuer des comparaisons élément par élément sur des vecteurs.

Les vecteurs suivants vous sont fournis :

temperatures <- c(18, 25, 32, 15, 28, 35, 22)
humidity <- c(45, 80, 60, 30, 75, 85, 50)

Utilisez des opérateurs logiques vectorisés pour créer les vecteurs logiques suivants :

  1. Créez un vecteur appelé comfortable_temp qui stocke TRUE pour chaque température supérieure ou égale à 20 ET inférieure ou égale à 30
  2. Créez un vecteur appelé high_humidity qui stocke TRUE pour chaque valeur d'humidité supérieure à 70
  3. Créez un vecteur appelé pleasant_day qui stocke TRUE pour chaque jour où la température est comprise entre 20 et 30 (inclus) ET l'humidité est inférieure ou égale à 60
  4. Créez un vecteur appelé extreme_weather qui stocke TRUE pour chaque jour où la température est supérieure à 30 OU l'humidité est supérieure à 80
  5. Créez un vecteur appelé stay_inside qui stocke TRUE pour chaque jour où la température est inférieure à 18 OU (la température est supérieure à 30 ET l'humidité est supérieure à 70)

Utilisez la fonction print() pour afficher comfortable_temp, high_humidity, pleasant_day, extreme_weather et stay_inside dans cet ordre exact.

Aide-mémoire

R possède deux versions des opérateurs ET (AND) et OU (OR) :

  • && et || fonctionnent avec des valeurs uniques
  • & et | sont des opérateurs vectorisés qui comparent les valeurs élément par élément

Les opérateurs vectorisés & et | comparent chaque position de manière indépendante :

a <- c(TRUE, TRUE, FALSE, FALSE)
b <- c(TRUE, FALSE, TRUE, FALSE)

a & b   # TRUE FALSE FALSE FALSE
a | b   # TRUE TRUE TRUE FALSE

Les opérateurs vectorisés sont puissants lorsqu'ils sont combinés avec des opérateurs de comparaison :

scores <- c(85, 42, 91, 67, 55)

# Vérifier quels scores sont compris entre 50 et 80
scores >= 50 & scores <= 80  # FALSE FALSE FALSE TRUE TRUE

Le résultat est un vecteur de valeurs logiques indiquant quels éléments remplissent les conditions.

Essayez vous-même

# Vecteurs fournis
temperatures <- c(18, 25, 32, 15, 28, 35, 22)
humidity <- c(45, 80, 60, 30, 75, 85, 50)

# À FAIRE : Écrivez votre code ci-dessous
# 1. Créer comfortable_temp : TRUE quand temp >= 20 ET temp <= 30

# 2. Créer high_humidity : TRUE quand humidity > 70

# 3. Créer pleasant_day : TRUE quand temp est entre 20-30 ET humidity <= 60

# 4. Créer extreme_weather : TRUE quand temp > 30 OU humidity > 80

# 5. Créer stay_inside : TRUE quand temp < 18 OU (temp > 30 ET humidity > 70)


# Afficher les résultats
print(comfortable_temp)
print(high_humidity)
print(pleasant_day)
print(extreme_weather)
print(stay_inside)
quiz iconTestez-vous

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