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


Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow