is.logical(TRUE)
[1] TRUE
is.logical(FALSE)
[1] TRUE
typeof(T)
[1] "logical"
typeof(F)
[1] "logical"
is.logical(1)
[1] FALSE
is.logical(0)
[1] FALSE
Status 🟨🟨🟨
Dados do tipo lógico podem assumir basicamente dois valores, verdadeiro (TRUE
) e falso (FALSE
). Estes valores podem ser abreviados por T
e F
, respectivamente.
is.logical(TRUE)
[1] TRUE
is.logical(FALSE)
[1] TRUE
typeof(T)
[1] "logical"
typeof(F)
[1] "logical"
is.logical(1)
[1] FALSE
is.logical(0)
[1] FALSE
Testes lógicos retornam valores lógicos.
is.logical(5 > 5)
[1] TRUE
typeof(10 < 9)
[1] "logical"
TRUE
e FALSE
são palavras reservadas, portanto não podem ser usadas como objetos.
TRUE <- 10
Error in TRUE <- 10: lado esquerdo da atribuição inválida (do_set)
Em R a constante NA
(Not Available) é usada para expressar valores faltantes. O NA
é do tipo lógico, mas pode ser atribuído a vetores de outros tipos (exceto raw) através de coerção.
typeof(NA)
[1] "logical"
is.na(NA)
[1] TRUE
<- c(1:5, NA, 6:10)
vetor_1 vetor_1
[1] 1 2 3 4 5 NA 6 7 8 9 10
typeof(vetor_1)
[1] "integer"
Os valores faltantes são muito importantes na análise de dados, pois podem influenciar cálculos e transformações. Até mesmo operações aritméticas básicas são influenciadas pelo valores faltantes.
1 + 5 + NA
[1] NA
Funções também são influenciadas pela presença dos dados faltantes. A função max
, por exemplo, que retorna o maior valor dentre os informados, retorna NA
se este estiver presente.
max(vetor_1)
[1] NA
R oferece algumas funções para tratameto de dados faltantes. Abaixo exemplo de uso da função na.omit
, que devolve os elementos não NA
. Caso o objeto não contenha valores faltantes, ele será “devolvido” de forma integral.
c(1, NA, 3) |> na.omit()
[1] 1 3
attr(,"na.action")
[1] 2
attr(,"class")
[1] "omit"
Muitas funções oferecem o argumento na.rm
para remoção dos valores faltantes, exemplos: sum
, max
, min
, prod
.
sum(c(1, 2, NA), na.rm = T)
[1] 3
prod(c(1, 2, NA), na.rm = T)
[1] 2
Números inteiros são do tipo integer
e devem ser criados com a letra L ao seu lado. Sem este indicador, por padrão, o R entende o número como do tipo double
.
typeof(1L)
[1] "integer"
typeof(1)
[1] "double"
Para testar se um número é do tipo inteiro pode-se utiliazr a função is.integer
.
is.integer(1)
[1] FALSE
Para transformar um valor para inteiro usa-se a função as.integer
.
is.integer(as.integer(1))
[1] TRUE
as.integer(1.99)
[1] 1
De forma grosseira, doubles são valores numéricos com decimais.
is.double(1)
[1] TRUE
Valores NaN
(‘não um número’) são valores de tipo double. Valores NaN
impactam operações lógicas e matemáticas.
typeof(NaN)
[1] "double"
NaN > 10
[1] NA
NaN * 10
[1] NaN
10/NaN
[1] NaN
5 + NaN
[1] NaN
No R os valores Inf e -Inf representam infinito e infinito negativo, respectivamente.
Estes valores impactam cálculos.
is.infinite(Inf)
[1] TRUE
5 + Inf
[1] Inf
Inf + Inf
[1] Inf
-Inf * -1
[1] Inf
Inf - Inf
[1] NaN
Mas operações lógicas seguem o ‘senso comum’.
Inf > 10
[1] TRUE
Inf > -Inf
[1] TRUE
Inf == Inf
[1] TRUE
Valores infinitos podem ser gerados se muito grandes ou por valores divididos por zeros.
10^308
[1] 1e+308
10^309
[1] Inf
10/0
[1] Inf
-10/0
[1] -Inf
Mas veja que zero dividido por zero é NaN
.
0/0
[1] NaN
0/Inf
[1] 0
Última atualização: 11/10/2024 - 21:53:49