Logique vectorisée - Partie 2
Fait partie de la section Fondamentaux du Journey R de Coddy. Leçon 21 sur 78.
Tout comme AND et OR ont des versions vectorisées, l’opérateur NOT fonctionne également élément par élément sur les vecteurs. Lorsque tu appliques ! à un vecteur de valeurs logiques, il inverse chaque élément individuellement.
passed <- c(TRUE, FALSE, TRUE, FALSE)
!passed # FALSE TRUE FALSE TRUEChaque TRUE devient FALSE, et chaque FALSE devient TRUE. C’est particulièrement utile lorsque vous voulez trouver les éléments qui ne satisfont pas une certaine condition :
temperatures <- c(18, 25, 30, 15, 22)
# Trouver les températures qui ne sont PAS au-dessus de 20
!(temperatures > 20) # TRUE FALSE FALSE TRUE FALSEVous pouvez combiner le NOT vectorisé avec & et | pour créer des filtres complexes :
ages <- c(16, 25, 18, 30, 14)
has_permission <- c(TRUE, TRUE, FALSE, TRUE, TRUE)
# Peut participer si : age >= 18 OR (under 18 AND has permission)
can_participate <- ages >= 18 | (ages < 18 & has_permission)
# TRUE TRUE FALSE TRUE TRUERappelle-toi : utilise un seul &, | et ! lorsque tu travailles avec des vecteurs, et un double &&, || lorsque tu compares des valeurs uniques.
Défi
FacileUtilisez l’opérateur vectorisé NON (!) ainsi que & et | pour créer des conditions logiques complexes appliquées élément par élément.
Les vecteurs suivants vous sont fournis :
scores <- c(45, 72, 88, 55, 91, 38, 67)
attended <- c(TRUE, TRUE, FALSE, TRUE, TRUE, FALSE, TRUE)
submitted_homework <- c(TRUE, FALSE, TRUE, TRUE, TRUE, FALSE, FALSE)Utilisez des opérateurs logiques vectorisés, notamment l’opérateur NON, pour créer les vecteurs logiques suivants :
- Créez un vecteur appelé
failedqui stockeTRUEpour chaque score qui n’est PAS supérieur ou égal à 60 - Créez un vecteur appelé
absentqui stocke l’opposé deattended(inversez chaque valeur) - Créez un vecteur appelé
at_riskqui stockeTRUEpour chaque étudiant qui n’a PAS assisté au cours OU n’a PAS rendu ses devoirs - Créez un vecteur appelé
passing_but_absentqui stockeTRUEpour chaque étudiant dont le score est supérieur ou égal à 60 ET qui n’a PAS assisté au cours - Créez un vecteur appelé
needs_supportqui stockeTRUEpour chaque étudiant dans le cas suivant : (le score est inférieur à 50) OU (l’étudiant n’a PAS assisté au cours ET n’a PAS rendu ses devoirs)
Utilisez la fonction print() pour afficher failed, absent, at_risk, passing_but_absent et needs_support, dans cet ordre exact.
Essayez vous-même
# Vecteurs donnés
scores <- c(45, 72, 88, 55, 91, 38, 67)
attended <- c(TRUE, TRUE, FALSE, TRUE, TRUE, FALSE, TRUE)
submitted_homework <- c(TRUE, FALSE, TRUE, TRUE, TRUE, FALSE, FALSE)
# TODO: Écrivez votre code ci-dessous
# 1. Créez 'failed' - TRUE pour les scores NOT >= 60
# 2. Créez 'absent' - opposé de attended
# 3. Créez 'at_risk' - NOT attended OR NOT submitted homework
# 4. Créez 'passing_but_absent' - score >= 60 AND NOT attended
# 5. Créez 'needs_support' - (score < 50) OR (NOT attended AND NOT submitted homework)
# Affichez les résultats
print(failed)
print(absent)
print(at_risk)
print(passing_but_absent)
print(needs_support)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éfautEntraînez-vous par vous-même : Compilateur R en ligne