직장인 대학원/R

[R] 범주형 데이터 (Factor)

Binsoo 2025. 4. 18. 18:43
728x90
반응형

오늘 수업에서는 R에서 범주형 데이터, 즉 Factor에 대해 배웠다.
처음엔 그냥 문자 벡터랑 뭐가 다르지? 싶었는데, 데이터에 의미 있는 "범주"를 부여하는 도구라는 걸 알고 꽤 유용하다고 느꼈다!

 

✅ Factor란?

  • 범주형 데이터를 표현하는 특수한 데이터 타입
  • 숫자나 문자열로만 구분하기보다, **라벨(label)**을 붙여서 더 자기 설명적인 self-describing 데이터를 만들 수 있음
  • 예시:
    • 성별: "남", "여"
    • 만족도: "매우좋음", "좋음", "보통", "나쁨"...
    • 혈액형: "A", "B", "AB", "O"

 

✨ Factor 생성 기본

 
x <- factor(c("yes", "yes", "no", "yes", "no"))
x
[1] yes yes no yes no
Levels: no yes

 

  • 자동으로 알파벳 순서로 level 정렬됨 (no, yes)
  • factor()는 문자 벡터 → 범주형 데이터로 바꿔주는 함수

 

🧭 직접 level 순서 지정하기

x <- factor(
	c("yes", "yes", "no", "yes", "no")
    , levels = c("yes", "no")
)
x

 

→ 내가 원하는 순서대로 "yes"를 앞에 두고 "no"가 뒤에 옴

 

📊 도수분포표 만들기 – table() 함수

 
blood.type <- factor(
	c("A", "A", "AB", "O", "O")
    , levels = c("A", "B", "AB", "O")
)
table(blood.type)
A  B AB O 
2  0  1  2

 

  • "B"는 데이터에 없지만 level에 포함되어 있어서 0도 나옴
  • 덕분에 모든 범주를 빠짐없이 보여주는 표를 만들 수 있음!

 

📌 오늘의 깨달음

Factor는 단순히 문자열을 담는 게 아니라, 해당 값이 의미하는 "범주(category)" 를 명확하게 함"
특히 통계 분석, 분류 모델, 시각화에서 정말 유용할 것 같음.
데이터에 라벨과 순서를 부여해서 훨씬 의미 있는 분석을 할 수 있다는 게 포인트다! 🎯
결론 : 넘 신기

728x90
반응형