71 votos

Eliminación de filas duplicadas en un marco de datos en R

¿Cómo puedo eliminar las filas duplicadas de este marco de datos de ejemplo?

A   1
A   1
A   2
B   4  
B   1
B   1
C   2
C   2

Me gustaría eliminar los duplicados basados en ambas columnas:

A   1
A   2
B   4
B   1
C   2

El orden no es importante.

115voto

birdie Puntos 53

unique() responde efectivamente a su pregunta, pero otra función relacionada e interesante para lograr el mismo fin es duplicated() .

Le da la posibilidad de buscar qué filas están duplicadas.

a <- c(rep("A", 3), rep("B", 3), rep("C",2))
b <- c(1,1,2,4,1,1,2,2)
df <-data.frame(a,b)

duplicated(df)
[1] FALSE  TRUE FALSE FALSE FALSE  TRUE FALSE  TRUE

> df[duplicated(df), ]
  a b
2 A 1
6 B 1
8 C 2

> df[!duplicated(df), ]
  a b
1 A 1
3 A 2
4 B 4
5 B 1
7 C 2

51voto

Brett Veenstra Puntos 10238

Usted está buscando unique() .

a <- c(rep("A", 3), rep("B", 3), rep("C",2))
b <- c(1,1,2,4,1,1,2,2)
df <-data.frame(a,b)
unique(df)

> unique(df)
  a b
1 A 1
3 A 2
4 B 4
5 B 1
7 C 2

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X