R Language
La clase logica
Buscar..
Introducción
Lógico es un modo (y una clase implícita) para vectores.
Observaciones
Taquigrafía
TRUE
, FALSE
y NA
son los únicos valores para vectores lógicos; y los tres son palabras reservadas. T
y F
pueden ser abreviadas para TRUE
y FALSE
en una sesión de R limpia, pero ni T
ni F
están reservados, por lo que la asignación de valores no predeterminados a esos nombres puede hacer que los usuarios tengan dificultades.
Operadores logicos
Hay dos tipos de operadores lógicos: los que aceptan y devuelven vectores de cualquier longitud (operadores elementwise: !
, |
, &
, xor()
) y los que solo evalúan el primer elemento en cada argumento ( &&
, ||
). La segunda ordenación se usa principalmente como el argumento cond
para la función if
.
Operador logico | Sentido | Sintaxis |
---|---|---|
! | No | !X |
Y | Elemento sabio (vectorizado) y | x & y |
&& | y (solo elemento) | x && y |
| | Elemento sabio (vectorizado) o | x | y |
|| | o (solo elemento) | x || y |
xor | Elemento sabio (vectorizado) O exclusivo | xor (x, y) |
Tenga en cuenta que el ||
el operador evalúa la condición izquierda y si la condición izquierda es VERDADERA, el lado derecho nunca se evalúa. Esto puede ahorrar tiempo si el primero es el resultado de una operación compleja. El operador &&
también devolverá FALSO sin evaluar el segundo argumento cuando el primer elemento del primer argumento sea FALSO.
> x <- 5
> x > 6 || stop("X is too small")
Error: X is too small
> x > 3 || stop("X is too small")
[1] TRUE
Para verificar si un valor es lógico, puede usar la función is.logical()
.
Coerción
Para forzar una variable a un uso lógico de la función as.logical()
.
> x <- 2
> z <- x > 4
> z
[1] FALSE
> class(x)
[1] "numeric"
> as.logical(2)
[1] TRUE
Al aplicar as.numeric()
a un lógico, se devolverá un doble. NA
es un valor lógico y un operador lógico con una NA
devolverá NA
si el resultado es ambiguo.
Interpretación de las AN
Ver los valores que faltan para más detalles.
> TRUE & NA
[1] NA
> FALSE & NA
[1] FALSE
> TRUE || NA
[1] TRUE
> FALSE || NA
[1] NA