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


Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow