/*
factor는 R에서 제공하는 categorical variable(범주형 변수)로, 여러개의 level로 구성된다.
혈액형이라는 범주형 변수가 존재할 때, A,B,AB,O 라는 level을 가지게 된다.
> BloodType <- c("A","B","AB","O","O","A","A","O","B","B")
> summary(BloodType)
Length Class Mode
10 character character
위에서 정의한 BloodType이라는 vector를 factor로 형변한 하기 위해서 factor() 함수를 사용한다.
Description
The function factor is used to encode a vector as a factor (the terms ‘category’ and ‘enumerated type’ are also used for factors). If argument ordered is TRUE, the factor levels are assumed to be ordered. For compatibility with S there is also a function ordered.
is.factor, is.ordered, as.factor and as.ordered are the membership and coercion functions for these classes.
Usage
factor(x = character(), levels, labels = levels,
exclude = NA, ordered = is.ordered(x), nmax = NA)
> BloodType <- c("A","B","AB","O","O","A","A","O","B","B")
> BloodType <- factor(BloodType)
> BloodType
[1] A B AB O O A A O B B
Levels: A AB B O
factor() 함수를 사용한 이후, BloodType은 A,AB,B,O라는 4가지 level을 가진 factor형 변수가 되고, 그것은 알파벳 순서로 정렬이 되어 categorical 하게 저장된다.
> summary(BloodType)
A AB B O
3 1 3 3
> gender <- c(1,1,2,2,1,2,2,2,1,2)
> summary(gender)
Min. 1st Qu. Median Mean 3rd Qu. Max.
1.0 1.0 2.0 1.6 2.0 2.0
>
> gender <- factor(gender)
> gender
[1] 1 1 2 2 1 2 2 2 1 2
Levels: 1 2
> class(gender)
[1] "factor"
>
1과 2의 level을 가지는 factor 형으로 변환된 것을 볼 수 있음.
하지만 1과 2가 무엇을 의미하는지 파악하기 불가능하기 때문에, 이름을 가지는 label을 구성해보자.
> gender <- c(1,1,2,2,1,2,2,2,1,2)
> gender <- factor(gender, levels=c(1,2), labels=c("male","female"))
> gender
[1] male male female female male female female female male female
Levels: male female
>
> summary(gender)
male female
4 6
>
'Programing > R- programming' 카테고리의 다른 글
apply 함수군 (lapply, sapply, tapply) R 프로그래밍 (1) | 2014.08.21 |
---|---|
결측치 NA (Missing value) 연산 / R programming (0) | 2014.08.21 |
벡터 및 행렬의 row/column에 이름 붙이기 (0) | 2014.08.21 |
R프로그래밍에서 matrix 다루기 (0) | 2014.08.21 |
R프로그래밍에서 Vector 다루기 (0) | 2014.08.21 |