본문 바로가기

R/쉽게 배우는 R 데이터분석

한국인의 삶을 파악하라! -04

반응형

연령대에 따른 월급 차이 - "어떤 연령대의 월급이 가장 많을까?"

 

앞에서는 각 나이별 평균 월급을 분석했습니다. 이번에는 나이를 연령대로 분류해서 비교해 보겠습니다.

 

분석절차

1. 변수 검토 및 전처리

-연령대, 월급

 

2. 변수 간 관계 분석

-연령대별 월급 평균표 만들기, 그래프 만들기

 

연령대 변수 검토 및 전처리하기

파생변수 만들기 - 연령대

앞에서 만든 나이 변수를 이용해 연령대 변수를 만들겠습니다. 표의 기준에 따라 연령대 변수를 만든 후 각 범주에 몇 명이 있는지 살펴보겠습니다.

 

welfare <- welfare %>%
  mutate(ageg = ifelse(age < 30, "young",
                        ifelse(age <= 59, "middle", "old")))

table(welfare$ageg)

middle    old  young 
  6049   6281   4334 
  
qplot(welfare$ageg)

 

연령대에 따른 월급 차이 분석하기

월급 변수 전처리는 02에서 완료했으니 생략하고 변수 간 관계를 분석하겠습니다.

 

1. 연령대별로 평균 월급이 다른지 알아보기 위해 연령대별 월급 평균표를 만들겠습니다. 분석 결과를 보면 월급 평균이 초년 163만 원, 중년 281만 원, 노년 125만 원 이라는 것을 알 수 있습니다.

 

ageg_income <- welfare %>%
  filter(!is.na(income)) %>%
  group_by(ageg) %>%
  summarise(mean_income = mean(income))

ageg_income
# A tibble: 3 x 2
  ageg   mean_income
  <chr>        <dbl>
1 middle        282.
2 old           125.
3 young         164.

 

2. 그래프 만들기

앞에서 만든 표를 이용해 그래프를 만들겠습니다.

ggplot(data = ageg_income, aes(x = ageg, y = mean_income)) + geom_col()

 

ggplot()은 막대를 변수의 알파벳 순으로 정렬하도록 기본값이 설정되어 있습니다. 막대가 초년 중년 노년의 나이 순으로 정렬되도록 설정하겠습니다. scale_x_discrete(limits = c())에 범주 순서를 지정하면 됩니다.

ggplot(data = ageg_income, aes(x = ageg, y = mean_income)) + 
  geom_col() +
  scale_x_discrete(limits = c("young", "middle", "old"))

 

표와 그래프를 보면 중년이 280만 원 정도로 가장 많은 월급을 받는다는 것을 알 수 있습니다. 노년은 125만 원 정도로 초년이 받는 163만 원보다 적은 월급을 받습니다.

 

 

반응형