R에서 여러 요인(factor)들이 결합된 요인을 만들어주는 interaction 함수
다섯 사람이 있다고 해봅시다. 다섯 사람의 성별과 혈액형은 아래와 같습니다.
gender=factor(c('M','M','F','M','F'),levels=c('M','F'))
b_type=factor(c('A','O','AB','B','A'),levels=c('A','O','AB','B'))
interaction 함수를 적용해보겠습니다.
> interaction(gender,b_type)
[1] M.A M.O F.AB M.B F.A
Levels: F.A M.A F.AB M.AB F.B M.B F.O M.O
위와 같이 두 요인이 결합된 요인을 반환해줍니다. level을 보면 두 요인의 level 조합으로 나올 수 있는 모든 경우의 level이 계산되었습니다. level이 생성된 순서를 보면, 입력된 요인순서 + 알파벳 순서의 조합임을 알 수 있습니다. 요인1의 알파벳 순서 F M이 반복되고, 요인 2가 알파벳 순서로 붙습니다.
이제 함수의 옵션을 알아봅시다 .
interaction(..., drop = FALSE, sep = ".", lex.order = FALSE)
drop옵션부터 차례로 알아봅시다.
drop옵션은 실제 사용되지 않은 level을 유지할지, 없앨지를 결정합니다.
두 결과를 비교해봅시다.
> interaction(gender,b_type)
[1] M.A M.O F.AB M.B F.A
Levels: M.A F.A M.O F.O M.AB F.AB M.B F.B
> interaction(gender,b_type,drop=TRUE)
[1] M.A M.O F.AB M.B F.A
Levels: M.A F.A M.O F.AB M.B
drop=TRUE 라고 옵션을 설정하면 실제로 나타나지 않는 조합들은 level에서 사라집니다.
sep 옵션은 무엇인지 이미 아셨을텐데요. 두 요인이 결합될 때, 사용되는 기호입니다. 디폴트는 . 인데요. 콜론기호로 바꿔보면 아래와 같습니다.
> interaction(gender,b_type,drop=TRUE,sep=':')
[1] M:A M:O F:AB M:B F:A
Levels: M:A F:A M:O F:AB M:B
마지막은 lex.order 옵션입니다. 두 결과를 비교해봅시다. lex.order을 false로 할 경우 요인순서+알파벳 순서였는데요. lex.order을 TRUE로 놓으면 M과 A,O,AB,B 가 조합된 뒤에, F와 A,O,AB,B가 조합됩니다.
> interaction(gender,b_type)
[1] M.A M.O F.AB M.B F.A
Levels: M.A F.A M.O F.O M.AB F.AB M.B F.B
> interaction(gender,b_type,lex.order=TRUE)
[1] M.A M.O F.AB M.B F.A
Levels: M.A M.O M.AB M.B F.A F.O F.AB F.B
'5. 자료구조 > 5) 요인 | factor()' 카테고리의 다른 글
R에서 요인(factor)을 쉽게 정의할 수 있는 꿀함수 gl() (0) | 2020.01.18 |
---|---|
[R기초] 요인(factor) 정의하는 방법 (0) | 2019.11.30 |
댓글