Page cover

Detección y tratamiento de duplicados

Los datos duplicados se refieren a observaciones o registros en un conjunto de datos que tienen los mismos valores en todas o en la mayoría de sus variables. Es decir, dos o más filas en un conjunto de datos son idénticas o muy similares en términos de los valores que contienen.

La presencia de datos duplicados puede afectar la calidad y la validez de los análisis estadísticos y los modelos predictivos, ya que pueden introducir sesgos y distorsiones en los resultados. Por lo tanto, es común realizar la detección y el tratamiento de datos duplicados al limpiar y preparar los datos antes de realizar análisis más avanzados.

Los datos duplicados pueden ocurrir por diversas razones:

  1. Como errores de entrada de datos,

  2. Problemas en la recolección de datos,

  3. O simplemente porque las mismas observaciones se han registrado más de una vez.

Identificar y abordar estos duplicados es esencial para asegurar la precisión y la confiabilidad de los resultados de cualquier análisis o modelado que se realice con esos datos.

Ejemplo de duplicados en R:

df <- data.frame(ID = c(1, 2, 3, 4, 2, 5),  
                Name = c("John", "Jane", "Bob", "Alice", "Jane", "Charlie"),  
                Age = c(25, 30, 22, 28, 30, 35),  
                Score = c(85, 92, 78, 90, 92, 80))

La función duplicated() te permite identificar las filas duplicadas en un dataframe y junto con ! los puedes eliminar y conservar solo las primeras ocurrencias:

###Identificación de los duplicados
duplicated(df)

# Fijaos que sólo te da uno de los dos duplicados
[1] FALSE FALSE FALSE FALSE  TRUE FALSE

# Eliminar duplicados y conservar solo las primeras ocurrencias
df_no_duplicates <- df[!duplicated(df), ]
df_no_duplicates

La función unique() se puede utilizar para obtener las filas únicas de un dataframe, lo que puede también ayudar a identificar y tratar los duplicados, la diferencia es que con esta no sabes cuáles han sido los duplicados ni cuantos:

# Obtener filas únicas
unique(df)

Por otro lado la librería dplyr proporciona la función distinct() para obtener filas únicas de un dataframe muy similar a unique. También se puede utilizar para eliminar duplicados:

library(dplyr)

# Eliminar duplicados usando distinct

distinct(df)

y finalmente la función subset() se puede utilizar para eliminar duplicados basándose en una condición:

# Eliminar duplicados basados en la columna 'ID'
df_no_duplicates <- subset(df, !duplicated(ID)) 

Last updated