R duplicated
restituisce un vettore che mostra se ciascun elemento di un vettore o di un frame di dati è un duplicato di un elemento con un indice più piccolo. Quindi, se le righe 3, 4 e 5 di un frame di dati a 5 righe sono gli stessi, duplicated
mi darà il vettoreTrovare TUTTE le righe duplicate, inclusi "elementi con indici minori"
FALSE, FALSE, FALSE, TRUE, TRUE
Ma in questo caso ho effettivamente desidera ottenere
FALSE, FALSE, TRUE, TRUE, TRUE
che è, voglio sapere se una riga è duplicata da una riga con un indice più grande anche.
Ma questa soluzione non presuppone che ci siano solo 2 valori duplicati? Cosa succede se ci sono più di 2? Quelli di mezzo saranno ignorati So che il significato letterale della parola "duplicato" implica "duplice", ma una soluzione più robusta sarebbe quella di @ 42, sì? – JoeM05
Aspetta, ho appena eseguito un test e ho scoperto che avevo torto: 'x <- c (1: 9, 7:10, 5:22); y <- c (lettere, lettere [1: 5]); test <- data.frame (x, y); test [duplicato (test $ x) | duplicato (test $ x, fromLast = TRUE),] ' Ha restituito tutte e tre le copie di 7, 8 e 9. Perché funziona? – JoeM05
Perché quelli di mezzo vengono catturati, non importa se si parte dalla fine o dalla parte anteriore. Ad esempio, 'duplicato (c (1,1,1))' vs 'duplicato (c (1,1,1,), fromLast = TRUE)' dà 'c (FALSE, TRUE, TRUE)' e 'c (VERO, VERO, FALSO) '. Il valore medio è "VERO" in entrambi i casi. Prendendo '|' di entrambi i vettori dà 'c (TRUE, TRUE, TRUE)'. – Brandon