[R 프로그램] 한국복지패널데이터 분석 프로젝트(2) - 연령대별 월급차이, 직업별 월급 차이 파악하기
● 연령대에 따른 월급 차이
이번에는 연령대별 월급을 살펴보겠다. 연령대별로 월급을 살펴보기 위해서는 연령대 파생변수를 생성해야 한다.
연령대의 범주를 초년(young), 중년(middle), 노년(old) 세 범주로 나누기 위해 mutate() 를 이용해 파생변수를 생성하였다.
연령대별 평균월급표를 만든 후, 그래프를 만들었다. ggplot()는 변수를 알파벳으로 정렬하도록 디폴트값이 설정되어있는데, 이를 '초년-중년-노년'의 나이 순대로 정렬되도록 scale_x_discrete(limits=c()) 를 사용해 범주 순서를 지정하였다.
표와 그래프를 살펴보면, 중년이 280만원정도로 가장 많은 월급을 받고, 노년은 125만원 정도로 초년이 받는 163만원보다 적은 월급을 받는다는 것을 알 수 있다.
● 직업별 월급 차이
직업을 나타내는 code_job변수를 살펴보았다. 직업변수는 직업분류코드로 정리가 되어있는데, 분석시에는 어떤 코드가 어떤 직업을 의미하는지 알 수 없으므로, 직업명칭 변수를 따로 생성해주어야 한다.
먼저, 직업분류코드 목록 데이터프레임을 만들겠다. 아래 링크에서 Koweps_codebook.xlsx를 다운로드해 프로젝트 폴더에 삽입한 후 불러오면 된다.
https://github.com/youngwoos/Doit_R/blob/master/Data/Koweps_Codebook.xlsx
GitHub - youngwoos/Doit_R: <Do it! 쉽게 배우는 R 데이터 분석> 저장소
<Do it! 쉽게 배우는 R 데이터 분석> 저장소. Contribute to youngwoos/Doit_R development by creating an account on GitHub.
github.com
엑셀파일을 불러오기 위해 readxl()패키지를 로드하였고, 첫 행을 변수명으로 가져오도록 col_names를 True로 설정한 후, 두 번째 시트에 있는 직업분류코드 목록을 불러오도록 sheet 파라미터에 2를 지정하였다.
출력결과를 살펴보면, 직업분류코드 목록이 코드와 직업명 두 변수로 구성되고, 직업이 149개로 분류된다는 것을 알 수 있다.
left_join()으로 job변수를 welfare에 결합하였다. welfare과 list_job 변수에 공통으로 들어 있는 code_job 변수를 기준으로 결합하면 된다. 결합이 완료된 후, welfare의 code_job, job변수 일부를 출력하여 잘 결합되었는지 확인해보았다. (head())
이제 직업별 월급 평균표를 만들어보았다. 월급이 없는 사람은 분석에서 제외하였다.
어떤 직업의 월급이 많은지 알아보기 위해 월급을 내림차순으로 정렬한 후, 상위 10개를 추출하였다.
앞서 만든 표를 이용해 그래프를 만들어보았다. 직업 이름이 길기 때문에 그래프를 기본값으로 만들면 x축이 서로 겹쳐 알아볼 수 없다. 따라서, coord_flip()을 추가해 막대를 오른쪽으로 90도 회전하였다. 또한, 직업별 구분을 특징짓기 위해 fill=job 조건을 추가하였다.
출력된 표와 그래프를 보면, '금속 재료 공학 기술자 및 시험원'이 평균 845만원으로 가장 많은 월급을 받고, 그 다음으로는 '의료진료 전문가', '의회의원 고위공무원 및 공공당체임원', '보험 및 금융 관리자'의 월급이 많다는 것을 알 수 있다.
동일한 방식으로 하위 10위에 해당하는 직업 또한 추출해보았다.
앞서 만든 상위10위 그래프와 비교할 수 있도록 x축의 값을 0-850까지 표현되게 설정하였다.
출력된 그래프를 보면, '가사 및 육아 도우미'의 월급이 평균 80만원으로 가장 적고, 그 뒤로는 '임업관련 종사자'. '기타 서비스관련 단순 종사원', '청소원 및 환경 미화원'의 월급이 적다는 것을 알 수 있다.
상/하위 분석결과를 비교해보면, 가장 많은 월급을 받는 '금속 재료 공학 기술자 및 시험원'이 '가사 및 육아 도우미'의 10배가 넘는 월급을 받는다는 것을 알 수 있다.