54 votos

¿Cuál es la diferencia entre NaN y NA?

Me gustaría saber por qué algunos lenguajes como R tienen tanto NA como NaN. ¿Cuáles son las diferencias o son igualmente iguales? ¿Es realmente necesario tener NA?

7 votos

Yo diría que NA es más bien un "marcador de posición"; NaN es para fines aritméticos (IEEE).

0 votos

@JM. buena forma de resumir.

0 votos

Y también está Inf, que representa expresiones como por ejemplo 1/0...

46voto

merriam Puntos 67

es.nan

es.na

NA

NaN

Debería responder a su pregunta.

Pero, en resumen:

NaN significa $\frac {0} {0}$ -- Significa "no es un número".

NA se interpreta generalmente como un valor perdido y tiene varias formas - NA_integer_, NA_real_, etc.

Por lo tanto, NaN $\neq$ NA y hay necesidad de NaN y NA.

22 votos

Hay que tener en cuenta, is.na() devuelve TRUE tanto para NA como para NaN, que difiere de is.nan() Por ejemplo is.na(c(0/0,NA)) contra. is.nan(c(0/0,NA)) .

12voto

Marc-Andre R. Puntos 789

NA es para los datos que faltan. NaN, como dijo J.M., es para fines aritméticos. NaN suele ser el producto de alguna operación aritmética, como 0/0 . NA suele declararse de antemano, o es producto de la operación cuando se intenta acceder a algo que no existe:

 > a <- c(1,2)
 > a[3]
   [1] NA

6voto

Akira Puntos 1061

Creo que NA significa 'No disponible', mientras que NaN es 'No es un número', aunque esto es más mnemotécnico que explicativo. Por cierto, no conozco ningún otro lenguaje que no sea R (¿tal vez Splus?) que tenga ambos. Matlab, por ejemplo, sólo tiene NaN.

0 votos

Has cometido una errata (crítica). "Na N es 'No es un número'"

0 votos

@Peter Smit: ouch, gracias. mi servidor X se retrasa en las pulsaciones...

2 votos

Varios lenguajes tienen construcciones equivalentes. Por ejemplo, PHP y Javascript tienen null y NaN.

2voto

f1r3br4nd Puntos 762
NA significa que el error ya estaba ahí cuando importaste la hoja de cálculo a R. NaN significa que causaste el error después de importar los datos. Es el tercer tipo de error el que es realmente difícil de detectar.

-)

3 votos

¿cuáles son los dos primeros?

0 votos

Estaba siendo simplista, pero lo que quería decir es que NA es el primer tipo de error, a menudo causado por algo en los datos importados que es del tipo incorrecto, por ejemplo, un campo numérico que contiene puntuación/letras/espacios en blanco o errores tipográficos/variación de mayúsculas en los niveles de un factor. NaN es el segundo error, que ocurre más a menudo cuando se transforman los datos dentro de R. El tercer error son los datos que sí tienen un valor numérico, pero por una u otra razón el incorrecto, y es menos inmediatamente perceptible. De nuevo, esto no pretende ser una categorización rigurosa, sólo una observación informal.

-1voto

ishandutta2007 Puntos 1

NA = No disponible

NaN = No es un número

Creo que una vez que ampliemos las siglas, debería ser autoexplicativo.

3 votos

¡Bienvenido a CV! Gracias por responder, pero por favor, lee primero las respuestas existentes y considera si estás añadiendo algo nuevo.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X