2012-11-27 25 views
5

只是想知道为什么重复的行为是为NAS的方式做:返回FALSE用于复制NA值使用函数复制时,()

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

这里其实

> NA == NA 
[1] NA 

是有办法将这些重复标记的NAs视为假,就像这样?

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

'duplicated'标记所述第二(第三,第四,等等)出现作为重复的,但不包括第一。你可以用'is.na()'来做你所要求的。 – Andrie

+0

谢谢。主要问题是为什么把NAs标记为重复是有意义的。 – jamborta

回答

18

您使用参数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

+0

谢谢。正是我所期待的。 – jamborta

+0

+1阅读说明书:-) – Andrie

+2

我已经知道了,我发誓,我真的知道这一点! ;) –

相关问题