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.

Jana
fuente
@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
Rahul
fuente
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
Bernd Weiss
fuente
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