Eliminando el marco de datos de filas duplicadas en R [cerrado]


71

¿Cómo puedo eliminar 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.


@whuber, ¿no debería trasladarse a SO?
llrs

@Llopis Sí, pero ya es demasiado tarde para hacerlo, y fue demasiado tarde cuando lo cerramos originalmente. Este tipo de pregunta se consideró (límite) sobre el tema hace muchos años, pero hoy en día se migraría rápidamente.
whuber

Respuestas:


115

unique()de hecho responde 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

2
Gracias por mencionar la función 'duplicada'. Se puede usar para eliminar filas duplicadas en función de un subconjunto de las columnas.
Joko

51

Que busca 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

1
Gracias Bernd Pensé que único se puede aplicar solo para una columna específica. No sabía que también se puede usar para todo el marco de datos. gracias de nuevo
Jana
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.