Ich würde gerne wissen, warum manche Sprachen wie R sowohl NA als auch NaN haben. Was sind die Unterschiede oder sind sie gleich? Muss man wirklich NA haben?
Bemerkenswert ist , is.na()kehrt TRUEsowohl für NA und NaN, die sich von is.nan()zB is.na(c(0/0,NA))vs.is.nan(c(0/0,NA)) .
CHL
11
NA ist für fehlende Daten. NaN, wie JM sagte, ist für arithmetische Zwecke. NaN ist normalerweise das Produkt einer arithmetischen Operation, wie z 0/0. NA wird normalerweise im Voraus deklariert oder ist ein Produkt der Operation, wenn Sie versuchen, auf etwas zuzugreifen, das nicht vorhanden ist:
Ich denke an NA, das für 'Not Available' steht, während NaN 'Not a Number' ist, obwohl dies eher eine Gedächtnisstütze als eine Erklärung ist. Übrigens kenne ich keine andere Sprache als R (vielleicht Splus?), Die beides hat. Matlab hat zum Beispiel nur NaN.
Sie haben einen (kritischen) Tippfehler gemacht. "Na N ist 'keine Zahl'"
Peter Smit
@ Peter Smit: autsch, danke. Mein X-Server
verzögert
2
Mehrere Sprachen haben äquivalente Konstrukte. Zum Beispiel haben PHP und Javascript null und NaN.
nico
2
NA bedeutet, dass der Fehler bereits vorhanden war, als Sie die Tabelle in R. importierten. NaN bedeutet, dass Sie den Fehler nach dem Import der Daten verursacht haben. Es ist die dritte Art von Fehler, die wirklich schwer zu fassen ist.
Ich war glib, aber ich meinte: NA ist der erste Fehlertyp, der häufig durch einen falschen Typ in den importierten Daten verursacht wird, z in den Ebenen eines Faktors. NaN ist der zweite Fehler, der häufiger auftritt, wenn Sie Daten innerhalb von R transformieren. Der dritte Fehler sind Daten, die zwar einen numerischen Wert haben, aber aus dem einen oder anderen Grund falsch sind, und die weniger sofort auffallen. Auch dies ist keine strenge Kategorisierung, sondern nur eine informelle Beobachtung.
f1r3br4nd
0
NA = Nicht verfügbar
NaN = keine Zahl
Ich denke, wenn wir die Akronyme erweitern, sollte es selbsterklärend sein.
Willkommen zum Lebenslauf! Vielen Dank für Ihre Antwort. Bitte lesen Sie zuerst die vorhandenen Antworten und überlegen Sie, ob Sie etwas Neues hinzufügen.
Antworten:
Sollte deine Frage beantworten.
Aber kurz gesagt:
NaN bedeutet - Steht für keine Zahl00
NA wird im Allgemeinen als fehlender Wert interpretiert und hat verschiedene Formen - NA_integer_, NA_real_ usw.
quelle
is.na()
kehrtTRUE
sowohl für NA und NaN, die sich vonis.nan()
zBis.na(c(0/0,NA))
vs.is.nan(c(0/0,NA))
.NA ist für fehlende Daten. NaN, wie JM sagte, ist für arithmetische Zwecke. NaN ist normalerweise das Produkt einer arithmetischen Operation, wie z
0/0
. NA wird normalerweise im Voraus deklariert oder ist ein Produkt der Operation, wenn Sie versuchen, auf etwas zuzugreifen, das nicht vorhanden ist:quelle
Ich denke an NA, das für 'Not Available' steht, während NaN 'Not a Number' ist, obwohl dies eher eine Gedächtnisstütze als eine Erklärung ist. Übrigens kenne ich keine andere Sprache als R (vielleicht Splus?), Die beides hat. Matlab hat zum Beispiel nur NaN.
quelle
NA bedeutet, dass der Fehler bereits vorhanden war, als Sie die Tabelle in R. importierten. NaN bedeutet, dass Sie den Fehler nach dem Import der Daten verursacht haben. Es ist die dritte Art von Fehler, die wirklich schwer zu fassen ist.
:-)
quelle
NA = Nicht verfügbar
NaN = keine Zahl
Ich denke, wenn wir die Akronyme erweitern, sollte es selbsterklärend sein.
quelle