R에서 중복 된 행 데이터 프레임 제거 [닫기]


71

이 예제 데이터 프레임에서 중복 행을 제거하려면 어떻게해야합니까?

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

두 열을 기반으로 중복을 제거하고 싶습니다.

A   1
A   2
B   4
B   1
C   2

순서는 중요하지 않습니다.


@ whuber를 SO로 옮기면 안됩니까?
llrs

@Llopis 네,하지만 지금은 너무 늦었습니다. 처음 닫을 때 너무 늦었습니다. 이런 종류의 질문은 몇 년 전에 주제에 대해 (경계선) 고려되었지만 현재는 빠르게 마이그레이션됩니다.
whuber

답변:


115

unique()실제로 귀하의 질문에 대답하지만 같은 목적을 달성하는 또 다른 관련적이고 흥미로운 기능은 duplicated()입니다.

중복 된 행을 찾아 볼 수 있습니다.

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
'중복'기능을 언급 해 주셔서 감사합니다. 열의 하위 집합을 기반으로 중복 된 행을 삭제하는 데 사용할 수 있습니다.
Joko

51

찾고 있습니다 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
감사합니다 Bernd. 고유 한 열에 만 적용 할 수 있다고 생각했습니다. 전체 데이터 프레임에도 사용할 수 있다는 것을 몰랐습니다. 다시 감사
Jana
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.