본문 바로가기
R 주제/R 기초 및 통계 강의

[R강의] 131. 연속형 변수를 구간에 따라 범주형 변수로 바꾸는 방법

by 만다린망고 2022. 12. 23.
반응형

점수를 학점으로 바꿔봅시다. 바꾸는 기준은 아래와 같습니다. 

 

 

점수는 연속형 변수이고, 학점은 범주형 변수입니다. R에는 위와 같이 범위로 표현된 연속형 변수를 범주형 변수로 바꿔주는 함수가 있습니다. cut 함수를 사용합니다. 

 

먼저 데이터를 생성합시다. 10명의 점수를 생성하겠습니다. num은 번호이고 score 은 점수입니다. 

 

#데이터 생성
num=1:10
score=c(78,62,65,94,71,97,57,83,71,100)
md=data.frame(num,score)


> md
   num score
1    1    78
2    2    62
3    3    65
4    4    94
5    5    71
6    6    97
7    7    57
8    8    83
9    9    71
10  10   100

 

cut 함수는 아래와 같이 사용합니다. 

 

#점수를 학점으로 변환
gpa=cut(md$score,breaks=c(0,70,80,90,100),right=FALSE,
    labels=c("D","C","B","A"),include.lowest=TRUE)

 

right 옵션은 아래와 같은 역할을 합니다. 

 

right=TRUE 일 경우 오른쪽 구간을 포함 $a<X<=b$

right=FALSE 일 경우 왼쪽 구간을 포함 $a<=X<b$

 

include.lowest = FALSE 일 경우 구간의 최대 또는 최솟값을 포함하게 됩니다. 위 예시에서는 $a<=X<b$ 로 설정되어 있어서 100이 포함되지 않는데, 100을 포함해주는 것입니다. 

 

변환 결과는 아래와 같습니다.

 

> gpa
 [1] C D D A C A D B C A
Levels: D C B A

 

우리가 다루던 데이터프레임에 새로운 열로 추가해줍시다. 

 

md=cbind(md,gpa)

> md
   num score gpa
1    1    78   C
2    2    62   D
3    3    65   D
4    4    94   A
5    5    71   C
6    6    97   A
7    7    57   D
8    8    83   B
9    9    71   C
10  10   100   A

 

#강의 영상

 

반응형

댓글