본문 바로가기
공부/R Programming

R 기초; 팩터

by 혼밥맨 2021. 1. 3.
반응형

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

댓글