R에서 중복행을 제거하는 방법

R을 가지고 데이터를 분석할 때 중복행을 제거해야 하는 경우가 많습니다. 쉬운 방법을 하나 소가하겠습니다. 우선 보기를 하나 만들겠습니다.

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)

윗 코드를 실행하면 다음과 같은 데이터프래임이 하나 만들어집니다.

> df
  a b
1 A 1
2 A 1
3 A 2
4 B 4
5 B 1
6 B 1
7 C 2
8 C 2

이 데이터프래임은 1행과 2행, 5행과 6행, 그리고 7행과 8행이 중복입니다. 이때 unique() 함수를 사용하며 중복행을 쉽게 제거할 수 있습니다. 다음과 같이 사용하시면 됩니다.

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

물론 덮어쓰기를 하지 않은 상태이기 때문에 앞에서 본 것처럼 df도 다음과 같이 그대로 있습니다. df가 더이상 필요하지 않다면 다음과 같이 해서 덮어써도 됩니다. 그러나 데이터 분석을 하는 경우에는 이렇게 하는 것은 추천하지 않습니다. 원자료는 소중합니다!!

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