Removendo o quadro de dados de linhas duplicadas em R [fechado]

71

Como posso remover linhas duplicadas desse quadro de dados de exemplo?

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

Gostaria de remover as duplicatas com base nas duas colunas:

A   1
A   2
B   4
B   1
C   2

A ordem não é importante.

Jana
fonte
@whuber não deveria ser transferido para SO?
LLRs
@Llopis Sim, mas agora é tarde demais para fazer isso - e era tarde demais quando o fechamos originalmente. Esse tipo de pergunta foi considerado (limítrofe) no tópico há muitos anos, mas hoje em dia seria migrado rapidamente.
whuber

Respostas:

115

unique()de fato responde à sua pergunta, mas outra função relacionada e interessante para atingir o mesmo fim é duplicated().

Permite-lhe procurar quais linhas são 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
fonte
2
Obrigado por mencionar a função 'duplicada'. Ele pode ser usado para excluir linhas duplicadas com base em um subconjunto das colunas.
Joko
51

Você está procurando 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
fonte
11
Obrigado Bernd. Eu pensei que único pode ser aplicado apenas para uma coluna específica. Eu não sabia que ele também pode ser usado para todo o quadro de dados. obrigado novamente
Jana