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