R Language
La classe logique
Recherche…
Introduction
Logical est un mode (et une classe implicite) pour les vecteurs.
Remarques
Sténographie
TRUE
, FALSE
et NA
sont les seules valeurs pour les vecteurs logiques; et tous les trois sont des mots réservés. T
et F
peuvent être des raccourcis pour TRUE
et FALSE
dans une session R propre, mais ni T
ni F
sont réservés, par conséquent, l'affectation de valeurs autres que celles par défaut à ces noms peut poser des problèmes aux utilisateurs.
Opérateurs logiques
Il y a deux sortes d'opérateurs logiques: ceux qui acceptent et renvoient des vecteurs de toute longueur (opérateurs elementwise: !
, |
, &
, xor()
) et ceux qui n'évaluent que le premier élément de chaque argument ( &&
, ||
). Le second tri est principalement utilisé comme argument cond
pour la fonction if
.
Opérateur logique | Sens | Syntaxe |
---|---|---|
! | ne pas | !X |
Et | par élément (vectorisé) et | x et y |
&& | et (élément unique uniquement) | x && y |
| | par élément (vectorisé) ou | x | y |
|| | ou (élément unique uniquement) | x || y |
xor | OU exclusif aux éléments (vectorisé) | xor (x, y) |
Notez que le ||
L'opérateur évalue la condition de gauche et si la condition de gauche est TRUE, le côté droit n'est jamais évalué. Cela peut gagner du temps si le premier est le résultat d'une opération complexe. L'opérateur &&
renverra également FALSE sans évaluation du deuxième argument lorsque le premier élément du premier argument est FALSE.
> x <- 5
> x > 6 || stop("X is too small")
Error: X is too small
> x > 3 || stop("X is too small")
[1] TRUE
Pour vérifier si une valeur est logique, vous pouvez utiliser la fonction is.logical()
.
Coercition
Pour contraindre une variable à une logique, utilisez la fonction as.logical()
.
> x <- 2
> z <- x > 4
> z
[1] FALSE
> class(x)
[1] "numeric"
> as.logical(2)
[1] TRUE
Lorsque vous appliquez as.numeric()
à une logique, un double sera renvoyé. NA
est une valeur logique et un opérateur logique avec une NA
renvoie NA
si le résultat est ambigu.
Interprétation des NA
Voir Valeurs manquantes pour plus de détails.
> TRUE & NA
[1] NA
> FALSE & NA
[1] FALSE
> TRUE || NA
[1] TRUE
> FALSE || NA
[1] NA