본문 바로가기

1. 머신러닝

[R] 사용되지 않는 level 제거하기 (feat. drop.levels함수)

728x90

 

 

 

#1번) 원데이터의 credit변수
head(data$credit)
##[1] 1 1 2 0 2 1
##Levels: 0 1 2

#2번) filter를 적용한 데이터의 credit변수
data2<-data%>%filter(data$credit%in%c(0, 1))
head(data2$credit)
##[1] 1 1 0 1 0 0
##Levels: 0 1 2

0, 1, 2의 값을 가질 수 있는 범주형 변수가 있다고 할 때, filter를 적용해 0, 1의 값만 가지는 관측치만 새로 생성했다.

하지만 levels은 0, 1, 2를 그대로 가지는 것을 확인할 수 있다.

 

이러한 경우 예전에 어떻게 처리했는지 기억이 나지 않아 검색을 해보니,

gdata 패키지의 drop.levels 함수를 사용하면 된다고 한다. 이렇게 !

data2$credit<-drop.levels(data2$credit)
head(data2$credit)
##[1] 1 1 0 1 0 0
##Levels: 0 1

 

 

 

 

728x90