Чим відрізняється NaN від NA?


48

Мені хотілося б знати, чому деякі мови, такі як R, мають НА та NaN. Які відмінності чи вони однаково однакові? Чи справді потрібно мати NA?


5
Я б сказав, що НА є більш "заповнювачем"; NaN призначений для арифметичних цілей (IEEE).
JM не є статистиком

@JM. хороший спосіб підвести підсумки.
suncoolsu

а також є Inf, який розшифровується як такі вирази, як, наприклад, 1/0 ...
Karsten W.

Це пояснено в документації тут .
gung - Відновіть Моніку

1
Я думаю, що це питання краще підходить для переповнення стека, але це питання занадто старе для міграції.
Зак

Відповіді:


44

? є.nan

? є.на

? НС

? NaN

Повинен відповісти на ваше запитання.

Але коротше:

NaN означає 00 - Стенди для не числа

NA зазвичай трактується як відсутнє значення і має різні форми - NA_integer_, NA_real_ тощо.

Тому NaN NA і є потреба в NaN та NA.


21
Слід зазначити, is.na()повертається TRUEяк для NA і NaN, який відрізняється від , is.nan()наприклад , is.na(c(0/0,NA)) проти is.nan(c(0/0,NA)) .
chl

11

NA - це відсутність даних. NaN, як сказав JM, для арифметичних цілей. NaN, як правило, є результатом якоїсь арифметичної операції, наприклад 0/0. NA зазвичай оголошується заздалегідь або є продуктом роботи, коли ви намагаєтесь отримати доступ до чогось, що там немає:

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

5

Я думаю, що НА стоїть як "Недоступно", а NaN - "Не число", хоча це більше мнемічно, ніж пояснення. До речі, я не знаю жодної іншої мови, окрім R (можливо, Splus?), Яка має обоє. Матлаб, наприклад, має лише NaN.


Ви зробили (критичну) помилку. "Na N - це" не число ""
Пітер Сміт

@Peter Smit: ой, дякую. мій X-сервер затримує натискання клавіш ...
shabbychef

2
Кілька мов мають еквівалентні конструкції. Наприклад, PHP та Javascript мають null та NaN.
nico

2

NA означає, що помилка вже була при імпорті електронної таблиці в R. NaN означає, що ви викликали помилку після імпорту даних. Це третій тип помилок, який насправді важко зрозуміти.

:-)


3
які перші два?
David LeBauer

Я мав гліб, але те, що я мав на увазі, - NA - це перший тип помилок, який часто викликаний тим, що в імпортованих даних неправильний тип - наприклад, числове поле, що містить розділові знаки / літери / пробіли або друкарські помилки / зміни регістру у рівнях фактору. NaN - друга помилка, яка частіше трапляється при перетворенні даних у межах R. Третя помилка - це дані, які мають числове значення, але з тієї чи іншої причини неправильна, і це менш одразу помітно. Знову ж таки, це не має бути суворою категоризацією, а лише неформальним спостереженням.
f1r3br4nd

0

NA = недоступно

NaN = Не число

Я думаю, що як тільки ми розширимо абревіатури, це повинно бути зрозумілим.


2
Ласкаво просимо в CV! Дякуємо за відповідь, але будь ласка, прочитайте спочатку наявні відповіді та подумайте, чи додаєте ви щось нове.
Scortchi
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.