[R기초] 요인(factor) 정의하는 방법
factor는 범주형자료를 입력할 때 사용합니다. 범주형은 영어로 categorical 인데요. 카테고리형태의 데이터라는 말입니다. 예를들면 혈액형, 성별 등이 있습니다.
#1. 형식
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
'5. 자료구조 > 5) 요인 | factor()' 카테고리의 다른 글
R에서 여러 요인(factor)들이 결합된 요인을 만들어주는 interaction 함수 (0) | 2020.01.18 |
---|---|
R에서 요인(factor)을 쉽게 정의할 수 있는 꿀함수 gl() (0) | 2020.01.18 |
댓글