R Language
De logische klasse
Zoeken…
Invoering
Logisch is een modus (en een impliciete klasse) voor vectoren.
Opmerkingen
steno
TRUE
, FALSE
en NA
zijn de enige waarden voor logische vectoren; en alle drie zijn gereserveerde woorden. T
en F
kunnen steno zijn voor TRUE
en FALSE
in een schone R-sessie, maar noch T
noch F
zijn gereserveerd, dus toewijzing van niet-standaardwaarden aan die namen kan gebruikers in de problemen brengen.
Logische operatoren
Er zijn twee soorten logische operatoren: operatoren die vectoren van elke lengte accepteren en retourneren (operatoren in elementen: !
, |
, &
, xor()
) en operatoren die alleen het eerste element in elk argument evalueren ( &&
, ||
). De tweede soort wordt voornamelijk gebruikt als het cond
argument voor de if
functie.
Logische operator | Betekenis | Syntaxis |
---|---|---|
! | Niet | !X |
& | element-gewijs (gevectoriseerd) en | x & y |
&& | en (alleen een element) | x && y |
| | element-gewijs (gevectoriseerd) of | x | Y |
|| | of (alleen één element) | x || Y |
xor | element-gewijs (gevectoriseerd) exclusief OF | xor (x, y) |
Merk op dat de ||
operator evalueert de linker voorwaarde en als de linker voorwaarde WAAR is, wordt de rechterkant nooit geëvalueerd. Dit kan tijd besparen als de eerste het resultaat is van een complexe bewerking. De operator &&
retourneert ook FALSE zonder evaluatie van het tweede argument wanneer het eerste element van het eerste argument FALSE is.
> x <- 5
> x > 6 || stop("X is too small")
Error: X is too small
> x > 3 || stop("X is too small")
[1] TRUE
Om te controleren of een waarde logisch is, kunt u de functie is.logical()
.
Dwang
Gebruik de functie as.logical()
om een variabele om te zetten in een logische.
> x <- 2
> z <- x > 4
> z
[1] FALSE
> class(x)
[1] "numeric"
> as.logical(2)
[1] TRUE
Wanneer as.numeric()
op een logische wordt toegepast, wordt een dubbele waarde geretourneerd. NA
is een logische waarde en een logische operator met een NA
retourneert NA
als de uitkomst dubbelzinnig is.
Interpretatie van NA's
Zie Ontbrekende waarden voor details.
> TRUE & NA
[1] NA
> FALSE & NA
[1] FALSE
> TRUE || NA
[1] TRUE
> FALSE || NA
[1] NA