Sự khác biệt giữa NaN và NA là gì?


48

Tôi muốn biết tại sao một số ngôn ngữ như R có cả NA và NaN. Sự khác biệt hoặc chúng giống nhau là gì? Có thực sự cần thiết phải có NA?


5
Tôi muốn nói NA là một "giữ chỗ" hơn; NaN là dành cho mục đích số học (IEEE).
JM không phải là một nhà thống kê

@JM. cách tốt để tóm tắt.
suncoolsu

và cũng có Inf, viết tắt của các biểu thức như ví dụ 1/0 ...
Karsten W.

Nó được giải thích trong tài liệu ở đây .
gung - Phục hồi Monica

1
Tôi nghĩ rằng câu hỏi này phù hợp hơn cho stack stack, nhưng câu hỏi này quá cũ để di chuyển.
Zach

Câu trả lời:


44

? là Nam

? là

? NA

? NaN

Nên trả lời câu hỏi của bạn.

Nhưng, tóm lại:

NaN có nghĩa là - Viết tắt của Không phải là Số00

NA thường được hiểu là một giá trị còn thiếu và có nhiều dạng khác nhau - NA_integer_, NA_real_, v.v.

Do đó, NaN NA và cần có NaN và NA.


21
Đáng lưu ý, is.na()trả về TRUEcho cả NA và NaN, khác với is.nan()ví dụ is.na(c(0/0,NA)) so với is.nan(c(0/0,NA)) .
chl

11

NA là dành cho dữ liệu bị thiếu. NaN, như JM nói là dành cho mục đích số học. NaN thường là sản phẩm của một số phép toán số học, chẳng hạn như 0/0. NA thường được khai báo trước hoặc là sản phẩm hoạt động khi bạn cố gắng truy cập vào thứ gì đó không có ở đó:

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

5

Tôi nghĩ NA là viết tắt của 'Không khả dụng', trong khi NaN là 'Không phải là Số', mặc dù điều này mang tính ghi nhớ nhiều hơn là giải thích. Nhân tiện, tôi biết không có ngôn ngữ nào ngoài R (có lẽ là Splus?) Có cả hai. Matlab, ví dụ, chỉ có NaN.


Bạn đã thực hiện một lỗi đánh máy (quan trọng). "Na N là 'Không phải là số'"
Peter Smit

@Peter Smit: ouch, cảm ơn. máy chủ X của tôi bị trễ khi gõ phím ...
shabbychef

2
Một số ngôn ngữ có cấu trúc tương đương. Ví dụ PHP và Javascript có null và NaN.
nico

2

NA có nghĩa là lỗi đã có khi bạn nhập bảng tính vào R. NaN có nghĩa là bạn đã gây ra lỗi sau khi nhập dữ liệu. Đây là loại lỗi thứ ba rất khó bắt.

:-)


3
hai cái đầu tiên là gì?
David LeBauer

Tôi đã bị lúng túng, nhưng ý tôi là-- NA là loại lỗi đầu tiên, thường gây ra bởi một thứ gì đó trong dữ liệu đã nhập sai - ví dụ: trường số chứa dấu chấm câu / chữ cái / khoảng trắng hoặc lỗi chính tả / biến thể trường hợp trong các cấp độ của một yếu tố. NaN là lỗi thứ hai, thường xảy ra khi bạn chuyển đổi dữ liệu trong R. Lỗi thứ ba là dữ liệu có giá trị số, nhưng vì lý do này hay lý do khác là sai và nó ít được chú ý ngay lập tức. Một lần nữa, đây không có nghĩa là một phân loại nghiêm ngặt, chỉ là một quan sát không chính thức.
F1r3br4

0

NA = Không có sẵn

NaN = Không phải là số

Tôi nghĩ rằng một khi chúng ta mở rộng các từ viết tắt, nó sẽ tự giải thích.


2
Chào mừng đến với CV! Cảm ơn bạn đã trả lời, nhưng xin vui lòng đọc câu trả lời hiện có trước, và xem xét liệu bạn có thêm bất cứ điều gì mới không.
Scortchi - Phục hồi Monica
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.