Me gustaría saber por qué algunos lenguajes como R tienen NA y NaN. ¿Cuáles son las diferencias o son igualmente iguales? ¿Es realmente necesario tener NA?
Me gustaría saber por qué algunos lenguajes como R tienen NA y NaN. ¿Cuáles son las diferencias o son igualmente iguales? ¿Es realmente necesario tener NA?
Respuestas:
? is.nan
? is.na
?N / A
?Yaya
Debería responder a su pregunta.
Pero, en resumen:
NaN significa - Significa No es un número
NA generalmente se interpreta como un valor perdido y tiene varias formas: NA_integer_, NA_real_, etc.
Por lo tanto, NaN NA y hay una necesidad de NaN y NA.
is.na()
los rendimientos TRUE
de ambos NA y Nan, que se diferencia de is.nan()
por ejemplo is.na(c(0/0,NA))
vs is.nan(c(0/0,NA))
.
NA es para datos faltantes. NaN, como dijo JM es para fines aritméticos. NaN suele ser el producto de alguna operación aritmética, como 0/0
. Normalmente, NA se declara por adelantado o es un producto de la operación cuando intenta acceder a algo que no está allí:
> a <- c(1,2)
> a[3]
[1] NA
Pienso en NA representando 'No disponible', mientras que NaN es 'No es un número', aunque esto es más nemotécnico que explicativo. Por cierto, no conozco otro lenguaje que no sea R (¿quizás Splus?) Que tenga ambos. Matlab, por ejemplo, solo tiene NaN.
NA significa que el error ya estaba allí cuando importó la hoja de cálculo a R. NaN significa que causó el error después de importar los datos. Es el tercer tipo de error que es realmente difícil de detectar.
:-)
NA = no disponible
NaN = No es un número
Creo que una vez que ampliamos los acrónimos, debería explicarse por sí mismo.