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


Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow