Quelle est la différence entre NaN et NA?

48

Je voudrais savoir pourquoi certaines langues comme R ont NA et NaN. Quelles sont les différences ou sont-elles également identiques? Est-il vraiment nécessaire d'avoir NA?

utilisateur2479
la source
5
Je dirais que NA est plus un "espace réservé"; NaN est utilisé à des fins arithmétiques (IEEE).
JM n'est pas un statisticien
@JM. bon moyen de résumer.
suncoolsu
et il y a aussi Inf, qui représente des expressions telles que par exemple 1/0 ...
Karsten W.
C'est expliqué dans la documentation ici .
Gay - Rétablir Monica
1
Je pense que cette question convient mieux au dépassement de capacité de la pile, mais la question est trop ancienne pour migrer.
Zach

Réponses:

44

? is.nan

? is.na

?N / A

? NaN

Devrait répondre à votre question.

Mais en bref:

NaN signifie - signifie pas un nombre00

NA est généralement interprété comme une valeur manquante et se présente sous différentes formes - NA_integer_, NA_real_, etc.

Par conséquent, NaN NA et il existe un besoin pour NaN et NA.

suncoolsu
la source
21
Il est à noter que les is.na()retours TRUEpour NA et NaN, qui diffèrent de, is.nan()par exemple, is.na(c(0/0,NA)) contre is.nan(c(0/0,NA)) .
chl
11

NA est pour les données manquantes. NaN, comme JM a dit est à des fins arithmétiques. NaN est généralement le produit d'une opération arithmétique, telle que 0/0. NA est généralement déclaré à l'avance ou est un produit opérationnel lorsque vous essayez d'accéder à quelque chose qui n'y est pas:

 > a <- c(1,2)
 > a[3]
   [1] NA 
mpiktas
la source
5

Je pense à NA pour «Not Available», alors que NaN est «Not a Number», bien que ce soit plus mnémonique qu'explication. À propos, je ne connais aucune autre langue que R (peut-être Splus?) Qui possède les deux. Matlab, par exemple, n'a que NaN.

shabbychef
la source
Vous avez fait une faute de frappe (critique). "Na N n'est pas un nombre" "
Peter Smit
@Peter Smit: ouch, merci. Mon serveur X est à la traîne ...
shabbychef
2
Plusieurs langues ont des constructions équivalentes. Par exemple PHP et Javascript ont null et NaN.
nico
2

NA signifie que l'erreur était déjà présente lorsque vous avez importé la feuille de calcul dans R. NaN signifie que vous avez provoqué l'erreur après l'importation des données. C'est le troisième type d'erreur qui est vraiment difficile à détecter.

:-)

f1r3br4nd
la source
3
quels sont les deux premiers?
David LeBauer
J'étais désinvolte, mais ce que je voulais dire était - NA est le premier type d'erreur, souvent causé par un type incorrect dans les données importées - par exemple, un champ numérique contenant des signes de ponctuation / lettres / espaces ou des fautes de frappe / casse-variation dans les niveaux d'un facteur. NaN est la deuxième erreur, qui survient plus souvent lorsque vous transformez des données dans R. La troisième erreur concerne des données qui ont une valeur numérique, mais pour une raison ou une autre, la mauvaise, et qui est moins immédiatement perceptible. Là encore, il ne s’agit pas d’une catégorisation rigoureuse, mais simplement d’une observation informelle.
f1r3br4nd
0

NA = non disponible

NaN = pas un nombre

Je pense qu'une fois les acronymes développés, cela devrait être explicite.

ishandutta2007
la source
2
Bienvenue sur CV! Merci de répondre, mais s'il vous plaît, lisez d'abord les réponses existantes et déterminez si vous ajoutez quelque chose de nouveau.
Scortchi - Réintégrer Monica