NaN ve NA arasındaki fark nedir?


48

R gibi bazı dillerin neden hem NA hem de NaN olduğunu bilmek istiyorum. Farklılıklar nelerdir veya aynı mıdır? NA olması gerçekten gerekli mi?


5
NA'nın daha çok "yer tutucunun" olduğunu söyleyebilirim; NaN (IEEE) aritmetik amaçlıdır.
JM, istatistikçi değil

@JM. özetlemek için iyi bir yol.
suncoolsu

ve ayrıca 1/0 gibi ifadeler anlamına gelen Inf da var ...
Karsten W.

Buradaki belgelerde açıklanmıştır .
dediklerinin - Eski Monica

1
Bu sorunun yığın taşması için daha uygun olduğunu düşünüyorum, ancak soru taşınması için çok eski.
Zach

Yanıtlar:


44

? is.nan

? is.na

? NA

? NaN

Soruna cevap vermelisin.

Ancak, kısaca:

NaN, 0 anlamına gelir. - Sayı Değil için Standlar00

NA genellikle eksik bir değer olarak yorumlanır ve çeşitli şekillerde bulunur - NA_integer_, NA_real_, vb.


21
Not olarak, örneğin vs.'den farklı olan NA ve NaN için is.na()geri döner . TRUEis.nan()is.na(c(0/0,NA)) is.nan(c(0/0,NA))
chl

11

NA eksik veriler içindir. NaN, JM'nin dediği gibi, aritmetik amaç içindir. NaN genellikle gibi bazı aritmetik işlemlerin ürünüdür 0/0. NA genellikle önceden bildirilmez veya orada olmayan bir şeye erişmeye çalıştığınızda bir operasyon ürünüdür:

 > a <- c(1,2)
 > a[3]
   [1] NA 

5

NA'nın “Müsait değil” anlamına geldiğini düşünüyorum, NaN ise “Sayı Değil” dır, bunun açıklamadan daha anımsatıcı olmasına rağmen. Bu arada, her ikisine de sahip olan R (belki de Splus?) Dışında başka bir dil bilmiyorum. Örneğin, Matlab sadece NaN'e sahiptir.


(Kritik) bir yazım hatası yaptınız. "Na N , 'Sayı Değil'"
Peter Smit

@ Peter Smit: ah, teşekkürler. X sunucum tuş vuruşlarını
geciktiriyor

2
Birkaç dilin eşdeğer yapıları vardır. Örneğin, PHP ve Javascript boş ve NaN değerlerine sahiptir.
nico,

2

NA, elektronik tabloyu R'ye içe aktarırken hatanın orada olduğunu gösterir. NaN, verileri içe aktardıktan sonra hataya neden olduğunuz anlamına gelir. Bu, yakalaması gerçekten zor olan üçüncü tür hata.

:-)


3
ilk ikisi nedir?
David LeBauer

Glib yapıyordum, ama demek istediğim şuydu: NA, içe aktarılan verilerdeki bir şeylerin yanlış tür olması nedeniyle ortaya çıkan ilk hata türüdür. bir faktörün seviyelerinde. NaN, R içindeki verileri dönüştürdüğünüzde en sık görülen ikinci hatadır, üçüncü hata sayısal bir değere sahip veridir, ancak bir nedenden ötürü yanlış olanıdır ve hemen fark edilir. Yine, bu titiz bir kategorizasyon, sadece gayrı resmi bir gözlem demek değildir.
f1r3br4nd

0

NA = Müsait değil

NaN = Sayı Değil

Bence kısaltmalar bir kez genişlediğinde, kendini açıklayıcı olmalı.


2
CV'ye Hoşgeldiniz! Yanıtladığınız için teşekkür ederiz, ancak lütfen önce mevcut cevapları okuyun ve yeni bir şey ekleyip eklemediğinizi düşünün.
Scortchi - Eski Monica
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.