# -*- coding: utf-8 -*-
# ---
# jupyter:
#   jupytext:
#     text_representation:
#       extension: .r
#       format_name: light
#       format_version: '1.5'
#       jupytext_version: 1.14.4
#   kernelspec:
#     display_name: R
#     language: R
#     name: ir
# ---

# ### 한국인의 삶을 파악하라(3) - 직업별 월급의 관계
# * 어떤 직업이 월급을 가장 많이 받을까?

# ### 학습내용
# * read_excel-sheet 이해하기
# * left_join() 이해하기
# * select() 이해하기 
# * filter( 조건 & 조건)
# * arrange(desc() ) 이해하기

library(foreign)
library(dplyr)
library(ggplot2)
library(readxl)

dat_welfare <- read.spss(file="D:\\dataset\\R_Doit\\Koweps_hpc10_2015_beta1.sav", to.data.frame=T)
welfare <- dat_welfare

welfare <- rename(welfare, 
                 sex=h10_g3,
                 birth=h10_g4,
                 marriage=h10_g10,
                 religion=h10_g11,
                 income=p1002_8aq1,
                 code_job=h10_eco9,
                 code_region=h10_reg7)


welfare <- select(welfare, sex, birth, marriage, religion, income, code_job, code_region)
names(welfare)

# ### P3-1 변수 확인 및 전처리

# ### 직업 : code_job, 월급 : income
# ### 파일 읽어오기

listjob <- read_excel("R_Doit/Koweps_Codebook.xlsx", sheet=2)
head(listjob,20)

dim(listjob)

# * 목록 코드와 직업
# * 직업이 149개로 분류

# ### left_join()를 이용한 데이터 결합

table(welfare$code_job)

length(table(welfare$code_job))
names(welfare)

names(welfare)
welfare <- left_join(welfare, listjob, id="code_job")
names(welfare)

# 데이터 확인 - NA의 제거는 filter를 이용하면 된다.
welfare %>% select(code_job, job, income)

job_income <- welfare %>%
              filter(!is.na(job) & !is.na(income)) %>%
              group_by(job) %>%
              summarise(mean_income = mean(income))
head(job_income)

welfare %>% filter(job=='스포츠 및 레크레이션 관련 전문가')

job_income %>% filter(job=='스포츠 및 레크레이션 관련 전문가')

top20 <- job_income %>% 
          arrange(desc(mean_income)) %>%
           head(20)
top20

ggplot(top20, aes(x=job, y=mean_income)) + geom_col()

ggplot(top20, aes(x=job, y=mean_income)) + geom_col() + coord_flip()

ggplot(top20, aes(x=reorder(job, mean_income), y=mean_income)) + geom_col() + coord_flip()

# ### (실습해보기) P3-1
# * (가) 직업별 수입 하위 20위를 추출해보자
# * (나) 직업별 수입 그래프를 출력해 보자.
# * (다) 직업별 수입 해석 결과를 적어보자.
#

# ### (실습해보기) P3-2
# * (가) '성별로 어떤 직업이 많은지'에 대해 분석해보자.
# * (Hint) summarise(n=n()) 은 해당 그룹에 대한 개수를 출력할 수 있다.



StarcoderdataJupyterScriptsDedupFiltered