Chciałbym wiedzieć, dlaczego niektóre języki, takie jak R, mają zarówno NA, jak i NaN. Jakie są różnice, czy są jednakowo takie same? Czy naprawdę trzeba mieć NA?
Chciałbym wiedzieć, dlaczego niektóre języki, takie jak R, mają zarówno NA, jak i NaN. Jakie są różnice, czy są jednakowo takie same? Czy naprawdę trzeba mieć NA?
Odpowiedzi:
? is.nan
? is.na
? NA
? NaN
Powinien odpowiedzieć na twoje pytanie.
Ale w skrócie:
NaN oznacza - oznacza brak liczby
NA jest ogólnie interpretowane jako brakująca wartość i ma różne formy - NA_integer_, NA_real_ itp.
Dlatego NaN NA i istnieje zapotrzebowanie na NaN i NA.
is.na()
powraca TRUE
zarówno dla NA i Nan, która różni się od is.nan()
np is.na(c(0/0,NA))
vs. is.nan(c(0/0,NA))
.
NA dotyczy brakujących danych. NaN, jak powiedział JM, służy celom arytmetycznym. NaN jest zwykle produktem niektórych operacji arytmetycznych, takich jak 0/0
. NA zwykle jest zadeklarowane z wyprzedzeniem lub jest produktem działania, gdy próbujesz uzyskać dostęp do czegoś, czego nie ma:
> a <- c(1,2)
> a[3]
[1] NA
Myślę o NA oznaczającym „Niedostępne”, podczas gdy NaN to „Nie liczba”, chociaż jest to bardziej mnemoniczne niż wyjaśnienie. Nawiasem mówiąc, nie znam żadnego innego języka niż R (może Splus?), Który ma oba. Na przykład Matlab ma tylko NaN.
NA oznacza, że błąd już występował podczas importowania arkusza kalkulacyjnego do R. NaN oznacza, że spowodowałeś błąd po zaimportowaniu danych. To trzeci rodzaj błędu, który jest naprawdę trudny do uchwycenia.
:-)
NA = Niedostępne
NaN = brak liczby
Myślę, że kiedy rozszerzymy akronimy, powinno to być oczywiste.