ความแตกต่างระหว่าง NaN และ NA คืออะไร?


48

ฉันอยากรู้ว่าทำไมบางภาษาเช่น R มีทั้ง NA และ NaN อะไรคือความแตกต่างหรือเท่ากัน จำเป็นหรือไม่ที่จะต้องมี NA


5
ฉันจะบอกว่า NA เป็น "ตัวยึด" มากกว่า NaN ใช้สำหรับจุดประสงค์ทางคณิตศาสตร์ (IEEE)
JM ไม่ใช่นักสถิติ

@JM วิธีที่ดีในการสรุป
suncoolsu

และยังมี Inf ซึ่งย่อมาจากสำนวนเช่น 1/0 ...
Karsten W.

มันอธิบายในเอกสารที่นี่
gung - Reinstate Monica

1
ฉันคิดว่าคำถามนี้เหมาะสำหรับกองมากเกิน แต่คำถามเก่าเกินไปที่จะโยกย้าย
Zach

คำตอบ:


44

? is.nan

? is.na

? NA

? น่าน

ควรตอบคำถามของคุณ

แต่ในระยะสั้น:

NaN หมายถึง - ย่อมาจาก Not a Number00

โดยทั่วไป NA ถูกตีความว่าเป็นค่าที่หายไปและมีรูปแบบต่าง ๆ - NA_integer_, NA_real_ ฯลฯ

ดังนั้น NaN NA และจำเป็นสำหรับ NaN และ NA


21
โน้ตis.na()ผลตอบแทนTRUEสำหรับทั้ง NA และน่านซึ่งแตกต่างจากการis.nan()เช่นเทียบกับis.na(c(0/0,NA)) is.nan(c(0/0,NA))
chl

11

NA ใช้สำหรับข้อมูลที่ขาดหายไป NaN อย่างที่ JM พูดนั้นมีไว้เพื่อจุดประสงค์ทางคณิตศาสตร์ 0/0น่านมักจะเป็นผลิตภัณฑ์ของบางส่วนดำเนินการทางคณิตศาสตร์เช่น โดยปกติแล้วจะมีการประกาศล่วงหน้า NA หรือเป็นผลิตภัณฑ์ของการดำเนินงานเมื่อคุณพยายามเข้าถึงบางสิ่งที่ไม่มี:

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

5

ฉันคิดว่า NA มีคำว่า 'Not Available' ในขณะที่ NaN คือ 'Not a Number' แม้ว่านี่จะช่วยในการจำมากกว่าคำอธิบาย โดยวิธีการที่ฉันรู้ว่าไม่มีภาษาอื่นนอกจาก R (อาจ Splus?) ที่มีทั้ง ตัวอย่างเช่น Matlab มีเพียง NaN


คุณพิมพ์ผิด (สำคัญ) "Na Nคือ 'ไม่ใช่ตัวเลข'"
Peter Smit

@ Peter Smit: อุ๊ยขอบคุณ เซิร์ฟเวอร์ X ของฉันทำงานช้าลงเมื่อกดแป้น ...
shabbychef

2
หลายภาษามีโครงสร้างที่เทียบเท่ากัน ตัวอย่างเช่น PHP และ Javascript มี Null และ NaN
โก้

2

NA หมายถึงข้อผิดพลาดเกิดขึ้นที่นั่นเมื่อคุณนำเข้าสเปรดชีตเข้าสู่ R. NaN หมายความว่าคุณเกิดข้อผิดพลาดหลังจากนำเข้าข้อมูล เป็นข้อผิดพลาดประเภทที่สามที่จับยากจริงๆ

:-)


3
สองคนแรกคืออะไร?
David LeBauer

ฉันเป็นคนขี้เกียจ แต่สิ่งที่ฉันหมายถึงคือ - NA เป็นข้อผิดพลาดชนิดแรกซึ่งมักเกิดจากบางสิ่งในข้อมูลที่นำเข้าว่าเป็นประเภทผิด - เช่นเขตข้อมูลตัวเลขที่มีเครื่องหมายวรรคตอน / ตัวอักษร / ช่องว่างหรือตัวพิมพ์ / ตัวพิมพ์ ในระดับของปัจจัย NaN เป็นข้อผิดพลาดที่สองซึ่งมักเกิดขึ้นเมื่อคุณแปลงข้อมูลภายใน R ข้อผิดพลาดที่สามคือข้อมูลที่มีค่าตัวเลข แต่ด้วยเหตุผลหนึ่งข้อหรือข้อผิดพลาดอีกประการหนึ่งและจะเห็นได้ชัดเจนน้อยลงในทันที อีกครั้งนี้ไม่ได้หมายถึงการจัดหมวดหมู่อย่างเข้มงวดเพียงสังเกตอย่างไม่เป็นทางการ
f1r3br4nd

0

NA = ไม่พร้อมใช้งาน

NaN = ไม่ใช่ตัวเลข

ฉันคิดว่าเมื่อเราขยายคำย่อมันควรจะอธิบายตัวเอง


2
ยินดีต้อนรับสู่ CV! ขอบคุณสำหรับการตอบ แต่โปรดอ่านคำตอบที่มีอยู่ก่อนและพิจารณาว่าคุณกำลังเพิ่มอะไรใหม่
Scortchi - Reinstate Monica
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.