# naver search confirm # markdown number and equation R 중복값을 갖는 행(row) 데이터 제거 //google adsense
본문 바로가기
R_패키지

R 중복값을 갖는 행(row) 데이터 제거

by 노마드분석가 2022. 5. 16.

이전글

 

R 결측값 시각화

1. 들어가며 일반적으로 summary(데이터프레임) 명령어로 각 변수의 결측값(Na's) 수를 확인할 수 있지만 변수별 결측값 수 또는 비율을 간편하게 시각화할 수 있는 패키지가 있다. 그러한 기능을 제

diseny.tistory.com

1. 들어가며

데이터 분석과정에서 중복된 값을 제거해야 할 일이 종종있다. 이런 작업을 수행하는 방법은 다양하지만 dplyr 패키지의 distinct 함수를 이용한 방법을 소개한다. 

 

2. 샘플 데이터 생성

library(dplyr)
A = c(2,2,4,4,4,5)
B = c(2,2,4,4,8,10)
C = c(2,2,5,6,7,5)
ABC = data.frame(A,B,C)
ABC

 

코드를 실행하면 다음과 같은 데이터 프레임을 얻을 수 있다. 

총 6개의 행 데이터와 세 개의 컬럼(A,B,C)으로 구성된 데이터 프레임이다. 여기에서 빨간색 부분은 A,B,C 세 개의 컬럼에서 동일한 값(2)을 갖고 있으며 녹색 부분은 A, B 두 개의 컬럼에서 동일한 값(4)을 갖고 있음을 알 수 있다. 

 

3. 모든 컬럼이 동일한 중복행 제거

distinct(데이터프레임) 코드를 실행하면 해당 데이터 프레임의 모든 열에서 동일한 값을 갖는 행 데이터를 제거한다. 

 

distinct(ABC)

 

아래 실행 결과를 보면 (2, 2, 2) 값을 갖는 행 데이터 중 하나는 제거되고 하나만 남았음을 알 수 있다. 

 

 

4. 특정한 변수 기준으로 중복값 제거

특정한 변수를 기준으로 중복값을 찾아 제거할 수 있다. 여기에서는 A 컬럼 기준으로 중복 값을 제거해보자.

 

distinct(ABC, A, .keep_all = T)

 

아래 실행 결과를 보면 원본 데이터 프레임에서 A 컬럼 기준으로 (2, 2)와 (4, 4)값이 중복되었으나 중복값을 제거하고 하나만 남아 있는 것을 알 수 있다.

.keep_all=T 옵션은 다른 컬럼을 남긴다는 의미로서 이 옵션이 없이 코드를 실행하면 A컬럼만 남는다. 이해를 위해 한번 실행해보기 바란다. 앞에 . 이 오는 것에 유의하자

 

 

여러 변수 기준으로 중복 값을 제거할 수도 있다. 변수명을 계속 나열해주기만 하면 된다. 

 

distinct(ABC, A, B, .keep_all = T)

 

아래 실행 결과를 보면 A, B 기준으로 중복된 값을 제거하고 남은 데이터를 보여주고 있음을 알 수 있다. 

 

 

참고로 중복되는 행을 찾아 그 행만 제외시키는 방법을 이용할 수 도 있다. 

 

duplicated_rows <- duplicated(ABC)
# Remove duplicated rows
ABC <- ABC[!duplicated_rows, ]
ABC

 

반응형

'R_패키지' 카테고리의 다른 글

R 결측값 시각화  (0) 2022.05.13
createDummyFeatures  (0) 2022.05.02
DataExplorer  (0) 2022.04.08
excel.link  (0) 2022.03.02

댓글