2012-11-27 10 views
5

solo chiedendo perché duplicato si comporta il modo in cui lo fa con AN:Rientro FALSE per i valori NA duplicati quando si utilizza la funzione di duplicato()

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

dove in realtà

> NA == NA 
[1] NA 

c'è un modo per ottenere che i marchi duplicati siano falsi, come questo?

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

'duplicato' contrassegna le occorrenze del secondo (e del terzo, del quarto ecc.) Come duplicate, ma non il primo. Puoi usare 'is.na()' per fare ciò che chiedi. – Andrie

+0

grazie. La domanda principale è perché ha senso contrassegnare le AN come duplicati. – jamborta

risposta

18

si utilizza l'argomento incomparables per la funzione duplicated in questo modo:

> 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 

Esso determina i valori che non possono essere confrontati (in questo caso NA) e restituisce FALSE per quei valori. Vedi anche ?duplicated

+0

grazie. esattamente quello che stavo cercando. – jamborta

+0

+1 per aver letto il manuale :-) – Andrie

+2

Lo sapevo già, lo giuro, lo sapevo davvero! ;) –

Problemi correlati