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 ET (AND) et OU (OR). Vous avez découvert && et ||, qui fonctionnent avec des valeurs uniques. Explorons maintenant leurs équivalents vectorisés : & et | (symboles uniques).

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 les 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.

Essayez vous-même

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

# TODO: Écrivez votre code ci-dessous
# 1. Créez comfortable_temp : TRUE quand temp >= 20 AND temp <= 30

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

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

# 4. Créez extreme_weather : TRUE quand temp > 30 OR humidity > 80

# 5. Créez stay_inside : TRUE quand temp < 18 OR (temp > 30 AND 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