R 데이터분석
- 직업별 월급 최대 찾기 문제
문제 요약
1. welfare.csv 불러와 df만들기
*사용변수명 수정하고 나이 파생변수 추가하기
2.직업코드 목록 들어가있는 list_job.csv불러오기
3.작업코드 기준 welfare 직업변수결합.
직업코드, 직업명 변수 결합 확인
4.직업빈도 상위 10개 추출, 최대찾기
5.우러급 가장 많은 상위 10개 직업 알기
*분석결과 저장
6.위 표 막대그래프 표현
*막대 오름차순 정렬, 오른쪽으로 90도 회전
7.20대 대상 최대 월급 상위 10개 직업 막대그래프 표현
*막대 오름차순 정렬, 오른쪽 90도 회전
문제풀이코드
데이터불러오기
library(dplyr)
df=read.csv("welfare.csv")
#데이터구조확인
str(welfare)
#변수명 변경
welfare=rename(df, birth=생년월일항목,
income=월급항목,
code_job=직업코드항목)
#파생변수만들기 - 나이
welfare=welfare %>%
mutate(age=2023-birth +1)
항목 결합 - 직업코드결합하기
llist_job=read.csv("list_job.csv")
welfare=left_join(welfare,list_job,
by="code_job")
welfare %>%
select(code_job, job)
%>%>head()
상위10개추출하기
-job별로 분류후 개수세기
welfare %>%
group_by(job) %>%
summarise(n=n()) %>% #빈도수세기
arrange(desc(n)) %>% #정렬
head(10) #상위10개
막대그래프그리기
- 내림차순 정렬
library("ggplot2")
ggplot(data=job_income,
aes(x=reorder(job, mean_income),
y=mean_income))+
geom_col()+ #막대그래프
coord_flip() #회전
필터링
- 20대이상 상위 10개직업구하기
#데이터확인 - 최소 20살로 10대에 대한 필터링 불필요
summary(welfare$age)
#필터링
job_20 = welfare%>%
filter(age<=29) %>%
group_by(job) %>% summarise(mean_income=mean(income))%>%
arrange(desc(mean_income)) %>%
head(10)
그래프그리기
ggplot(job_20,
aes(x=reorder(job,mean_inomce),
mean_income)+
geom_col()+
coord_flip()
'ADP실기공부 > 응용' 카테고리의 다른 글
R데이터분석 - 로지스틱 회귀분석 분류문제 (0) | 2023.04.24 |
---|---|
로지스틱 회귀분석 R실습 (0) | 2023.03.14 |
다중선형 회귀분석 R실습 (0) | 2023.03.14 |
단순회귀분석 R 실습 (0) | 2023.03.14 |