Vetores Lógicos

Criação


logicos <- c(TRUE, TRUE, TRUE, FALSE, FALSE, TRUE)
logicos
## [1]  TRUE  TRUE  TRUE FALSE FALSE  TRUE


logicos <- c(T, T, T, F, F, T)
logicos
## [1]  TRUE  TRUE  TRUE FALSE FALSE  TRUE

Classe e tipo


class(logicos)
## [1] "logical"


typeof(logicos)
## [1] "logical"


Teste


É lógico?

is.logical(logicos)
## [1] TRUE


Conversão


De logical para numeric:

num <- as.numeric(logicos)
num
## [1] 1 1 1 0 0 1


class(num)
## [1] "numeric"


De numeric para logical:

num <- c(0,1,2,3,4,5)
logi <- as.logical(num)
logi
## [1] FALSE  TRUE  TRUE  TRUE  TRUE  TRUE


class(logi)
## [1] "logical"


De logical para character:

char <- as.character(logicos)
char
## [1] "TRUE"  "TRUE"  "TRUE"  "FALSE" "FALSE" "TRUE"


class(char)
## [1] "character"


De character para lógico (formato lógico):

char <- c("TRUE", "TRUE", "FALSE", "TRUE")
logi <- as.logical(char)
logi
## [1]  TRUE  TRUE FALSE  TRUE


class(logi)
## [1] "logical"


De character para lógico (outros formatos):

char <- c("0", "1", "uva", "pêssego")
logi <- as.logical(char)
logi
## [1] NA NA NA NA


class(logi)
## [1] "logical"


Operações relacionais


salarios_sp <- c(1800, 2350, 3410, 4285, 5188)
salarios_pr <- c(1760, 2350, 3190, 4285, 5095)


salarios_sp é igual a salario_pr?

salarios_sp == salarios_pr
## [1] FALSE  TRUE FALSE  TRUE FALSE


salarios_sp é diferente de salario_pr?

salarios_sp != salarios_pr
## [1]  TRUE FALSE  TRUE FALSE  TRUE


salarios_sp é maior que salario_pr?

salarios_sp > salarios_pr
## [1]  TRUE FALSE  TRUE FALSE  TRUE


salarios_sp é menor que salario_pr?

salarios_sp < salarios_pr
## [1] FALSE FALSE FALSE FALSE FALSE


salarios_sp é maior ou igual a salario_pr?

salarios_sp >= salarios_pr
## [1] TRUE TRUE TRUE TRUE TRUE


salarios_sp é menor ou igual a salario_pr?

salarios_sp <= salarios_pr
## [1] FALSE  TRUE FALSE  TRUE FALSE


Operações lógicas


Operador AND

Retorna verdadeiro quando todos os valores de entrada são verdadeiros.


salarios_sp é maior que 2000 e (AND) menor que 4000:

salarios_sp > 2000 & salarios_sp < 4000
## [1] FALSE  TRUE  TRUE FALSE FALSE


Operador OR

Retorna verdadeiro quando pelo menos um dos valores de entrada é verdadeiro.


salarios_sp é menor que 3000 ou (OR) maior que 4000:

salarios_sp < 3000 | salarios_sp > 4000
## [1]  TRUE  TRUE FALSE  TRUE  TRUE


Operador NOT

Inverte o estado lógico.


salarios_sp não (NOT) é menor que 3000:

!salarios_sp < 3000 
## [1] FALSE FALSE  TRUE  TRUE  TRUE
Anterior
Próximo