R Language
La classe logica
Ricerca…
introduzione
Logico è una modalità (e una classe implicita) per i vettori.
Osservazioni
Abbreviazione
TRUE
, FALSE
e NA
sono gli unici valori per i vettori logici; e tutte e tre sono parole riservate. T
e F
possono essere abbreviazioni di TRUE
e FALSE
in una sessione R pulita, ma né T
né F
sono riservati, quindi l'assegnazione di valori non predefiniti a tali nomi può mettere in difficoltà gli utenti.
Operatori logici
Esistono due tipi di operatori logici: quelli che accettano e restituiscono vettori di qualsiasi lunghezza (operatori elementwise: !
, |
, &
, xor()
) e quelli che valutano solo il primo elemento in ogni argomento ( &&
, ||
). Il secondo ordinamento viene principalmente utilizzato come argomento cond
per la funzione if
.
Operatore logico | Senso | Sintassi |
---|---|---|
! | Non | !X |
& | element-wise (vectorized) e | x & y |
&& | e (solo elemento singolo) | x && y |
| | element-wise (vectorized) o | x | y |
|| | o (solo elemento singolo) | x || y |
xor | element-wise (vectorized) OR esclusivo | xor (x, y) |
Si noti che ||
l'operatore valuta la condizione di sinistra e se la condizione di sinistra è VERO, la parte destra non viene mai valutata. Questo può far risparmiare tempo se il primo è il risultato di un'operazione complessa. Analogamente, l'operatore &&
restituirà FALSE senza la valutazione del secondo argomento quando il primo elemento del primo argomento è FALSE.
> x <- 5
> x > 6 || stop("X is too small")
Error: X is too small
> x > 3 || stop("X is too small")
[1] TRUE
Per verificare se un valore è logico, puoi utilizzare la funzione is.logical()
.
Coercizione
Per forzare una variabile su una logica, utilizzare la funzione as.logical()
.
> x <- 2
> z <- x > 4
> z
[1] FALSE
> class(x)
[1] "numeric"
> as.logical(2)
[1] TRUE
Quando si applica as.numeric()
a un logico, verrà restituito un doppio. NA
è un valore logico e un operatore logico con una NA
restituirà NA
se il risultato è ambiguo.
Interpretazione di NA
Vedi i valori mancanti per i dettagli.
> TRUE & NA
[1] NA
> FALSE & NA
[1] FALSE
> TRUE || NA
[1] TRUE
> FALSE || NA
[1] NA