3.3 R 팩터 Factor
범주형(명목형) 자료의 데이터 구조입니다. Levles는 이 팩터(요인)가 가질 수 있는 값들입니다. 예를 들면 성별 데이터는 범주형 데이터로서 팩터 데이터 구조를 가질 수 있는데, “남성”와 “여성”은 Levels라 할 수 있습니다.
R에서 분석을 하다보면 팩터형식의 데이터이어야 하는 경우가 있고, 팩터형식이 아니어야 하는 경우가 있습니다. 상황에 따라 적절한 형식으로 변환하며 사용해야 합니다.
3.3.1 팩터 변수 만들기
sex <- c("남성", "여성", "여성", "남성", "남성")
sex <- factor(sex)
# Or
sex <- factor(sex, levels = c("여성", "남성"))
sex
#> [1] 남성 여성 여성 남성 남성
#> Levels: 여성 남성
팩터는 벡터와 밀접한 관계입니다. 사실상 펙터는 정수 벡터로 저장된 데이터 구조입니다. 아래에서 보듯이 levels는 문자로 저장되어 있으나, 각 요소는 숫자로 저장되어 있습니다. 1은 여성이고 2는 남성인 것입니다.
3.3.2 팩터 요소 추출
팩터의 요소 추출은 벡터와 유사합니다.
3.3.3 팩터 요소 수정
팩터 요소의 수정은 벡터와 비슷하나, Levels 값의 범위를 벗어날 수 없습니다.
sex[1] <- "여성"
sex
#> [1] 여성 여성 여성 남성 남성
#> Levels: 여성 남성
sex[1] <- "양성"
#> Warning in `[<-.factor`(`*tmp*`, 1, value = "양성"): invalid factor level, NA
#> generated
sex
#> [1] <NA> 여성 여성 남성 남성
#> Levels: 여성 남성
Levels 값의 범위를 벗어난 값을 추가하려면 먼저 새로운 Levels 값을 추가합니다.
3.3.4 기타
3.3.4.1 팩터 레벨의 순서 변경
팩터 레벨의 순서는 levels 속성에서 정의하여 줍니다.
3.3.4.3 팩터 변환
factor()와 as.factor()는 거의 유사하나, 입력 데이터가 이미 factor이거나 vector이면 as.factor()의 속도가 더 빠릅니다.