Я хотел бы знать, почему некоторые языки, такие как R, имеют как NA, так и NaN. В чем различия или они одинаково одинаковы? Действительно ли нужно иметь АН?
Я хотел бы знать, почему некоторые языки, такие как R, имеют как NA, так и NaN. В чем различия или они одинаково одинаковы? Действительно ли нужно иметь АН?
Ответы:
? is.nan
? is.na
? Н.А.
? NaN
Должен ответить на ваш вопрос.
Но вкратце:
NaN означает - обозначает не число
NA обычно интерпретируется как отсутствующее значение и имеет различные формы - NA_integer_, NA_real_ и т. Д.
Следовательно, NaN NA и существует потребность в NaN и NA.
is.na()
возвращается TRUE
как для NA, так и для NaN, что отличается, is.nan()
например, is.na(c(0/0,NA))
от is.nan(c(0/0,NA))
.
NA для отсутствующих данных. NaN, как сказал JM, предназначен для арифметических целей. NaN обычно является продуктом некоторой арифметической операции, такой как 0/0
. NA обычно объявляется заранее или является продуктом операции, когда вы пытаетесь получить доступ к чему-то, чего нет:
> a <- c(1,2)
> a[3]
[1] NA
Я думаю, что NA означает «Не доступно», тогда как NaN - «Не число», хотя это более мнемоническое, чем объяснение. Кстати, я не знаю другого языка, кроме R (возможно, Splus?), Который имеет оба. Matlab, например, имеет только NaN.
NA означает, что ошибка уже возникла, когда вы импортировали электронную таблицу в R. NaN означает, что вы вызвали ошибку после импорта данных. Это третий тип ошибок, который действительно трудно уловить.
:-)
NA = Нет в наличии
NaN = не число
Я думаю, что как только мы расширим аббревиатуры, это должно быть само собой разумеющимся.