Variables lógicas

Las variables lógicas constituyen un tipo particular de factor en R, que se caracteriza por tomar sólo dos valores: TRUE o FALSE codificados, respectivamente, como 1 y 0. Es posible construir condiciones lógicas utilizando los operadores ‘y’ (&), ‘o’ (|) y ‘no’ (!). La comparación de valores se lleva a cabo mediante == (‘es igual a’) y != (‘es distinto de’).

ATENCIÓN: No debe confundirse el operador de asignación = con el de comparación ==.

Veamos algunos ejemplos:

a=2
b=4
a==b  # ¿es a igual a b?
## [1] FALSE
a!=b  # ¿es a distinto de b?
## [1] TRUE
(a<3)&(b<5)  # ¿es a menor que 3 y b menor que 3?
## [1] TRUE
(a<1)|(b<3)  # ¿es a menor que 1 o b menor que 3?
## [1] FALSE



Es posible asignar el resultado de una operación lógica a una variable:

respuesta <- (a==3)
respuesta
## [1] FALSE



Se pueden realizar operaciones algebraicas con valores lógicos, en cuyo caso el valor TRUE es un 1 y el FALSE un 0:

TRUE+TRUE
## [1] 2
TRUE+FALSE
## [1] 1
(a==1)+(b==3)
## [1] 0
(a==2)+(b==4)
## [1] 2



Los valores lógicos se pueden agrupar en vectores:

vectoLogic <- c(TRUE,TRUE,FALSE,FALSE,TRUE,FALSE,a==2,b==4)
vectoLogic
## [1]  TRUE  TRUE FALSE FALSE  TRUE FALSE  TRUE  TRUE



La función which() detecta las posiciones donde el vector lógico es TRUE:

which(vectoLogic)
## [1] 1 2 5 7 8



Las funciones any(x) y all(x) determinan, respectivamente, si alguno o todos los elementos de x son TRUE:

any(c(a==2, a==3, a==4))
## [1] TRUE
any(c(a==3, a==4, a==5, a==6))
## [1] FALSE
all(c(a==2, b==4, 2<3))
## [1] TRUE
all(vectoLogic)
## [1] FALSE
any(vectoLogic)
## [1] TRUE



La función %in% permite determinar si uno o varios valores están contenidos en un vector:

x=1:10
a=2
a %in% x
## [1] TRUE
b=c(6,8,14,2,15)
b %in% x
## [1]  TRUE  TRUE FALSE  TRUE FALSE








© 2016 Angelo Santana, Carmen N. Hernández, Departamento de Matemáticas   ULPGC