R 기초; 팩터
R에서 팩터는 범주형 데이터를 나타냅니다
# 문자 벡터 생성하기
review <- c("Good", "Good", "Indifferent", "Bad", "Good", "Bad")
# 팩터 만들기
review.factor <- factor(review)
review.factor
[1] Good Good Indifferent Bad Good Bad
Levels: Bad Good Indifferent
# factor() 함수는 인수로 주어지는 문자 벡터 데이터에서 중복되지 않는 레벨을 추출해서 팩터를 생성합니다.
# str() 이용해서 팩터 구조 살펴보기
str(review.factor)
Factor w/ 3 levels "Bad", "Good", "Indifferent": 2 2 3 1 2 1
# R은 내부적으로 팩터 데이터를 숫자로 저장합니다.
as.numeric(review.factor)
[1] 2 2 3 1 2 1
eventday <- c("Mon", "Mon", "Tue", "Wed", "Mon", "Wed", "Thu", "Fri", "Tue")
eventday <- factor(eventday)
everyday.factor
[1] Mon Mon Tue Wed Mon Wed Thu Fri Tue
Levels: Fri Mon Thu Tue Wed
# 인위적으로 레벨 만들기
eventday.factor <- factor(eventday, levels=c("Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"))
eventday.factor
[1] Mon Mon Tue Wed Mon Wed Thu Fri Tue
Levels: Mon Tue Wed Thu Fri Sat Sun
levels(review.factor)
[1] "Bad" "Good" "Indifferent"
# 팩터의 레벨 수정/변경하기
levels(review.factor) <- c("B", "G", "I")
review.factor
[1] G G I B G B
Levels: B G I
# 레벨의 개수 알아보기 using nlevels()
nlevels(review.factor)
[1] 3
# 레벨의 개수 알아보기 using length
length(levels(review.factor))
eval <- c("Medium", "Low", "High", "Medium", "High")
eval.factor <- factor(eval)
eval.factor
[1] Medium Low High Medium High
Levels: High Low Medium
eval.ordered <- factor(eval, levels=c("Low", "Medium", "High"), ordered=TRUE)
eval.ordered
[1] Medium Low High Medium High
Levels: Low < Medium < High
table(eval.factor)
High Low Medium
2 1 2
table(eval.ordered)
Low Medium High
1 2 2
sex <- c(2, 1, 2, 2, 1, 0)
sex.factor <- factor(sex, levels=c(1, 2), labels=c("Male", "Female"))
sex.factor
[1] Female Male Female Female Male <NA>
Levels: Male Female
table(sex.factor)
Male Female
2 3
'공부 > R Programming' 카테고리의 다른 글
R 기초; 배열 (0) | 2021.01.04 |
---|---|
R 기초; 행렬 생성 (0) | 2021.01.03 |
R 기초; 벡터 인덱싱 (0) | 2021.01.03 |
R 기초; 행렬 연산 (0) | 2021.01.02 |
R 기초; 벡터 함수 (0) | 2021.01.02 |
댓글