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?
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?
Antworten:
is.nan
is.na
?N / A
NaN
Sollte deine Frage beantworten.
Aber kurz gesagt:
NaN bedeutet - Steht für keine Zahl
NA wird im Allgemeinen als fehlender Wert interpretiert und hat verschiedene Formen - NA_integer_, NA_real_ usw.
is.na()
kehrt TRUE
sowohl für NA und NaN, die sich von is.nan()
zB is.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:
> a <- c(1,2)
> a[3]
[1] NA
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.
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.
:-)
NA = Nicht verfügbar
NaN = keine Zahl
Ich denke, wenn wir die Akronyme erweitern, sollte es selbsterklärend sein.