R's duplicated
devuelve un vector que muestra si cada elemento de un vector o marco de datos es un duplicado de un elemento con un subíndice más pequeño. Así que si las filas 3, 4 y 5 de una trama de datos de 5 filas son los mismos, duplicated
me dará el vectorEncontrar TODAS las filas duplicadas, incluidos los "elementos con subíndices más pequeños"
FALSE, FALSE, FALSE, TRUE, TRUE
Pero en este caso que en realidad quiere conseguir
FALSE, FALSE, TRUE, TRUE, TRUE
que es decir, quiero saber si una fila está duplicada por una fila con un subíndice más grande también.
¿Pero esta solución no asume que solo hay 2 valores duplicados? ¿Qué pasa si hay más de 2? Los medios serán ignorados. Sé que el significado literal de la palabra "duplicar" implica "doble", pero una solución más sólida sería @ 42-s, ¿sí? – JoeM05
Espera, acabo de ejecutar una prueba y encontré que estaba equivocado: 'x <- c (1: 9, 7:10, 5:22); y <- c (letras, letras [1: 5]); prueba <- data.frame (x, y); prueba [duplicado (prueba $ x) | duplicado (prueba $ x, fromLast = TRUE),] ' Devolvió las tres copias de 7, 8 y 9. ¿Por qué funciona? – JoeM05
Porque los medios se capturan no importa si comienzas desde el final o desde el frente. Por ejemplo, 'duplicado (c (1,1,1))' vs 'duplicado (c (1,1,1), desde Última = VERDADERO)' da 'c (FALSE, TRUE, TRUE)' y 'c (VERDADERO, VERDADERO, FALSO) '. El valor medio es 'VERDADERO 'en ambos casos. Tomar '|' de ambos vectores da 'c (TRUE, TRUE, TRUE)'. – Brandon