Gostaria de saber por que algumas línguas como R têm NA e NaN. Quais são as diferenças ou são igualmente iguais? É realmente necessário ter NA?
Gostaria de saber por que algumas línguas como R têm NA e NaN. Quais são as diferenças ou são igualmente iguais? É realmente necessário ter NA?
Respostas:
? is.nan
? is.na
?N / D
? NaN
Deve responder sua pergunta.
Mas, resumindo:
NaN significa - Significa Não é um Número
O NA geralmente é interpretado como um valor ausente e possui várias formas - NA_integer_, NA_real_ etc.
is.na()
os retornos TRUE
para ambos NA e NaN, que difere do is.nan()
exemplo is.na(c(0/0,NA))
vs is.nan(c(0/0,NA))
.
NA é para dados ausentes. NaN, como JM disse, é para fins aritméticos. NaN é geralmente o produto de alguma operação aritmética, como 0/0
. NA geralmente é declarado com antecedência ou é um produto da operação quando você tenta acessar algo que não existe:
> a <- c(1,2)
> a[3]
[1] NA
Penso que NA significa 'Não disponível', enquanto NaN é 'Não é um número', embora isso seja mais mnemônico do que explicação. A propósito, não conheço outra língua além de R (talvez Splus?) Que possua ambas. O Matlab, por exemplo, possui apenas NaN.
NA significa que o erro já estava lá quando você importou a planilha para R. NaN significa que você causou o erro após importar os dados. É o terceiro tipo de erro que é realmente difícil de detectar.
:-)
NA = Não disponível
NaN = Não é um número
Acho que uma vez que expandimos as siglas, deve ser auto-explicativo.