2012-11-27 7 views
5

mich nur gefragt, warum duplizierten die Art und Weise mit NAs es tut verhält:für dupliziert NA-Werte FALSE zurück bei der Verwendung der Funktion (dupliziert)

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

, wo in der Tat

> NA == NA 
[1] NA 

ist es eine Möglichkeit, erreichen, dass duplizierten Marken NA als falsch, so?

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

'dupliziert 'markiert das zweite (und dritte und vierte usw.) Vorkommen als dupliziert, aber nicht das erste. Sie können 'is.na()' verwenden, um das zu tun, was Sie fragen. – Andrie

+0

danke. Die Hauptfrage ist, warum es sinnvoll ist, NAs als Duplikate zu kennzeichnen. – jamborta

Antwort

18

Sie verwenden das Argument incomparables für die Funktion duplicated wie folgt aus:

> 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 

Es die Werte bestimmt, die nicht (in diesem Fall NA) verglichen werden kann und gibt FALSE für diese Werte. Siehe auch ?duplicated

+0

danke. genau das was ich gesucht habe. – jamborta

+0

+1 zum Lesen der Anleitung :-) – Andrie

+2

Ich wusste das schon, ich schwöre, das wusste ich wirklich! ;) –

Verwandte Themen