범주형 데이터 셋의 대표적인 데이터 셋은 자동차 기준이라고 생각이 든다. 왜냐 하면, 자량의 구분도 명확하고, 효율 등급도 잘나왔고, 친환경 차량 여부도 잘 나와 있기 때문이다.
아래 표는 자동차 효율 등급 및 연비를 가정 한 데이터 이다.
구분 | 경차 | 소형차 | 중형차 |
연비 | 16.7 | 13.5 | 12.3 |
효율등급 | A | B | C |
친환경차 | TRUE | FALSE | FALSE |
1. 데이터 오브젝트 속성
오브젝트 구조는 'str' 함수로 확인 할 수 있다. 표시되는 내용은 데이터 형식이나 값의 목록이다. 그리고 오브젝트에는 '속성'이 설정 되는 경우가 있다. 이것은 'attributes' 함수로 확인 할 수 있다.
이번에는 factor의 성질을 보고자 한다. factor는 범주를 나눌 수 있지만, 범주에 대한 순서도 나눌 수 있다. 아래 예를 보자
# 자동차 연비를 변수 x에 넣는다.
x <- c(16.7, 13.5, 12.3)
# 데이터 구조를 본다.
str(x)
## num [1:3] 16.7 13.5 12.3
# 효율 등급을 변수 z에 넣는다.
z <- factor(x, labels = c("A","B","C"))
z
## [1] C B A
## Levels: A B C
class(z)
## [1] "factor"
str(z)
## Factor w/ 3 levels "A","B","C": 3 2 1
attributes(z)
## $levels
## [1] "A" "B" "C"
##
## $class
## [1] "factor"
실행예의 'z'는 숫자형 오브젝트 'x'를 변환한 인자 오브젝트이다. 'str' 함수에서 내부 구조를 확인 하면 3개 수준으로 구성된 인자로 각 A,B,C로 표현되어 있는데 내부적으로는 1,2,3,인 경우가 있다. 'attributes' 함수의 출력은 수준 '$levels'와 클레스 '$class'가 표시된다.
아래는 효율 등급별 그래프를 그리는 예제 이다.
require(dplyr)
require(ggplot2)
# 효율등급별 그래프를 그린다.
data.frame(z, x) %>%
ggplot(aes(z,x)) +
geom_bar(stat = "identity")
댓글 없음:
댓글 쓰기