1.5 Factors

factor는 범주형 데이터를 저장하기 위해 사용된다. (factor는 기본적으로 문자형 벡터이다.)

eye.col.vec <- c("brown", "green", "brown", "blue", "blue", "blue")  # 문자 벡터
eye.col.vec
## [1] "brown" "green" "brown" "blue"  "blue"  "blue"
eye.col.fac <- factor(c("brown", "green", "brown", "blue", "blue", "blue")) # factor
eye.col.fac
## [1] brown green brown blue  blue  blue 
## Levels: blue brown green

R은 factor의 서로 다른 level들을 식별한다 - 즉, 단일 값들. 데이터는 내부적으로 정수로 저장되며, 각 숫자는 factor의 level에 대응한다. (문자 벡터보다 데이터 저장 공간이 절약되는 효과가 있다.)

# factor의 level 확인 : levels() 함수의 사용
levels(eye.col.fac)      # factor(범주형 변수)의 levels들(단일 값)
## [1] "blue"  "brown" "green"
# factor의 숫자 벡터 변환 : as.numeric() 함수의 사용
as.numeric(eye.col.fac)  # 수치 값 : 1은 "blue", 2는 "brown", 3은 "green"
## [1] 2 3 2 1 1 1
# 문자 벡터의 숫자 벡터 변환 
as.numeric(eye.col.vec)  # eye.col.vec 벡터는 숫자 벡터로 변환이 안됨.
## Warning: 강제형변환에 의해 생성된 NA 입니다
## [1] NA NA NA NA NA NA
# factor의 문자형 변환 : as.character() 함수의 사용
as.character(eye.col.fac)  
## [1] "brown" "green" "brown" "blue"  "blue"  "blue"
# 문자 벡터의 문자형 변환
as.character(eye.col.vec) 
## [1] "brown" "green" "brown" "blue"  "blue"  "blue"