Возвращайте FALSE для дублированных значений NA при использовании функции дублирования()

просто интересно, почему дублирование ведет себя так, как с NA:

> duplicated(c(NA,NA,NA,1,2,2))
[1] FALSE  TRUE  TRUE FALSE FALSE  TRUE

где на самом деле

> NA == NA
[1] NA

есть ли способ добиться того, чтобы дублированные пометки NA были ложными, как это?

> duplicated(c(NA,NA,NA,1,2,2))
[1] FALSE  FALSE  FALSE FALSE FALSE  TRUE

person jamborta    schedule 27.11.2012    source источник
comment
duplicated помечает второе (и третье, и четвертое, и т. д.) вхождение как дублированное, но не первое. Вы можете использовать is.na(), чтобы делать то, что вы просите.   -  person Andrie    schedule 27.11.2012
comment
Спасибо. Главный вопрос заключается в том, почему имеет смысл помечать NA как дубликаты.   -  person jamborta    schedule 27.11.2012


Ответы (1)


Вы используете аргумент incomparables для функции duplicated следующим образом:

> duplicated(c(NA,NA,NA,1,2,2))
[1] FALSE  TRUE  TRUE FALSE FALSE  TRUE
> duplicated(c(NA,NA,NA,1,2,2),incomparables=NA)
[1] FALSE FALSE FALSE FALSE FALSE  TRUE

Он определяет значения, которые нельзя сравнивать (в данном случае NA), и возвращает FALSE для этих значений. См. также ?duplicated

person Joris Meys    schedule 27.11.2012