R Language
Klasa logiczna
Szukaj…
Wprowadzenie
Logiczny jest trybem (i klasą niejawną) dla wektorów.
Uwagi
Stenografia
TRUE
, FALSE
i NA
to jedyne wartości dla wektorów logicznych; a wszystkie trzy są słowami zastrzeżonymi. T
i F
mogą być skrótem dla TRUE
i FALSE
w czystej sesji R, ale ani T
ani F
nie są zarezerwowane, więc przypisanie wartościom innym niż domyślne do tych nazw może spowodować trudności użytkowników.
Operatory logiczne
Istnieją dwa rodzaje operatorów logicznych: te, które przyjmują i zwracają wektory dowolnej długości (operatory elementarne: !
, |
, &
, xor()
) oraz te, które oceniają tylko pierwszy element w każdym argumencie ( &&
, ||
). Drugi rodzaj jest używany przede wszystkim jako argument cond
funkcji if
.
Operator logiczny | Znaczenie | Składnia |
---|---|---|
! | Nie | ! x |
I | pod względem elementów (wektoryzacji) i | x i y |
I & | i (tylko pojedynczy element) | x && y |
| | pod względem elementów (wektoryzacji) lub | x | y |
|| | lub (tylko pojedynczy element) | x || y |
Xor | wyłączne pod względem elementów (wektoryzacji) LUB | xor (x, y) |
Zauważ, że ||
operator ocenia lewy warunek, a jeśli lewy warunek ma wartość PRAWDA, prawa strona nigdy nie jest oceniana. To może zaoszczędzić czas, jeśli pierwszy jest wynikiem złożonej operacji. Operator &&
zwróci również FAŁSZ bez oceny drugiego argumentu, gdy pierwszym elementem pierwszego argumentu jest FAŁSZ.
> x <- 5
> x > 6 || stop("X is too small")
Error: X is too small
> x > 3 || stop("X is too small")
[1] TRUE
Aby sprawdzić, czy wartość jest logiczna, można użyć funkcji is.logical()
.
Przymus
Aby przekonwertować zmienną na logiczną, użyj funkcji as.logical()
.
> x <- 2
> z <- x > 4
> z
[1] FALSE
> class(x)
[1] "numeric"
> as.logical(2)
[1] TRUE
Przy zastosowaniu as.numeric()
do logiki, zostanie zwrócone podwójne. NA
jest wartością logiczną, a operator logiczny z NA
zwróci NA
jeśli wynik będzie niejednoznaczny.
Interpretacja NA
Zobacz szczegóły dotyczące brakujących wartości .
> TRUE & NA
[1] NA
> FALSE & NA
[1] FALSE
> TRUE || NA
[1] TRUE
> FALSE || NA
[1] NA