본문 바로가기
5. 자료구조/5) 요인 | factor()

[R기초] 요인(factor) 정의하는 방법

by makhimh 2019. 11. 30.
반응형

[R기초] 요인(factor) 정의하는 방법



factor는 범주형자료를 입력할 때 사용합니다. 범주형은 영어로 categorical 인데요. 카테고리형태의 데이터라는 말입니다. 예를들면 혈액형, 성별 등이 있습니다.


#1. 형식


factor(x = character(), levels, labels = levels,
       exclude = NA, ordered = is.ordered(x), nmax = NA)


x 어떤 형식의 데이터도 넣을 수 있고, 개수 제한 없음. 


#2. 예제


2-1) 기본예제

아래와 같이 성별데이터를 factor에 입력합니다.


gender=factor(c("Male","Male","Female","Female","Female"))



아래와 같이 Level이 설정됩니다. Level은 카테고리라고 생각하시면 됩니다. 남자와 여자라는 카테고리로 데이터가 분류된 것입니다.


> gender_f
[1] Male   Male   Female Female Female
Levels: Female Male


summary함수를 적용하면 각 Level 별 개수를 반환해줍니다.


> summary(gender)
Female   Male
     3      2



2-1) 레이블 지정 예제

아래와 같이 level 별로 레이블을 지정할 수 있습니다. Male을 M으로, Female 을 F로 나타내겠다는 의미입니다.


gender=factor(c("Male","Male","Female","Female","Female"),
              levels=c("Male","Female"),labels=c("M","F"))


아래는 결과입니다.


> gender
[1] M M F F F
Levels: M F



2-2) 레이블 지정 예제2

아래와 같이 비슷한 의미의 level 들이 들어있는 경우, 레이블을 일치시킬 수 있습니다. Male과 Man을 M으로, Female과 Woman을 F로 나타냅니다.


gender=factor(c("Male","Male","Man","Woman","Female","Female","Female"),
              levels=c("Male","Female","Man","Woman"),labels=c("M","F","M","F"))


아래는 결과입니다.


> gender
[1] M M M F F F F
Levels: M F



2-3) 순서(ordered) 예제

범주형 데이터 중에는 순서가 있는 경우가 있습니다. 예를들어 설문조사점수가 있습니다. 점수별 만족도는 아래와 같다고 합시다.

5점 : Highly Satisfied
4점 : Satisfied
3점 : Neutral
2점 : Dissatisfied
1점 : Highly Dissatisfied


survey=factor(c(1,2,3,4,1,4,1,3,2,5,1,4),
              levels=c(1,2,3,4,5),
              labels=c("Highly Dissatisfied","Dissatisfied","Neutral","Satisfied","Highly Satisfied"),
              ordered=TRUE)


아래는 결과입니다.


> survey
 [1] Highly Dissatisfied Dissatisfied        Neutral           
 [4] Satisfied           Highly Dissatisfied Satisfied         
 [7] Highly Dissatisfied Neutral             Dissatisfied      
[10] Highly Satisfied    Highly Dissatisfied Satisfied         
5 Levels: Highly Dissatisfied < Dissatisfied < ... < Highly Satisfied



반응형

댓글