이전글
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 |
댓글