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?
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))contreis.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:
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.
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.
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.
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.
Réponses:
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.≠
la source
is.na()
retoursTRUE
pour NA et NaN, qui diffèrent de,is.nan()
par exemple,is.na(c(0/0,NA))
contreis.nan(c(0/0,NA))
.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:la source
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.
la source
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.
:-)
la source
NA = non disponible
NaN = pas un nombre
Je pense qu'une fois les acronymes développés, cela devrait être explicite.
la source