set up

library(dplyr)
## 
## 다음의 패키지를 부착합니다: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(ggplot2)
library(foreign)
library(readxl)

raw_welfare <- read.spss(file= "Koweps_hpc10_2015_beta1.sav", to.data.frame = T)
## Warning in read.spss(file = "Koweps_hpc10_2015_beta1.sav", to.data.frame = T):
## Koweps_hpc10_2015_beta1.sav: Compression bias (0) is not the usual value of 100
raw_welfare -> 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) # 지역 코드

문제1

# 이름 변경
table(welfare$sex)
## 
##    1    2 
## 7578 9086
welfare$sex <- ifelse(welfare$sex == 1, "male" ,"female")
#수입 결측치 제거
welfare$income <- ifelse(welfare$income %in% c(0,9999), NA, welfare$income)
#sexincome 요약본 만들기
sex_income <- welfare %>% 
  filter(!is.na(income)) %>% 
  group_by(sex) %>% 
  summarise(mean_income = mean(income))
# 그래프
ggplot(data= sex_income, aes(x=sex, y=mean_income))+geom_col()

문제2

You can also embed plots, for example:

welfare$birth <- ifelse(welfare$birth ==9999, NA, welfare$birth)
welfare$age <- 2015 - welfare$birth +1


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


ggplot(data=age_income,aes(x=age, y= mean_income)) +geom_line()

문제 3

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

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

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

문제 4

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

문제 5

sex_income <- welfare %>% 
  filter(!is.na(income)) %>% 
  group_by(ageg,sex) %>% 
  summarise(mean_income = mean(income))
## `summarise()` has grouped output by 'ageg'. You can override using the
## `.groups` argument.
ggplot(data = sex_income, aes(x= ageg, y= mean_income, fill= sex)) +geom_col()+ scale_x_discrete(limits= c("young","middle","old"))

##문제 6

ggplot(data= sex_income, aes(x= ageg, y=mean_income, fill= sex)) + geom_col(position="dodge") + scale_x_discrete(limits= c("young","middle","old"))

##문제 7

sex_age <- welfare %>% 
  filter(!is.na(income)) %>% 
  group_by(age,sex) %>% 
  summarise(mean_income = mean(income))
## `summarise()` has grouped output by 'age'. You can override using the `.groups`
## argument.
ggplot(data= sex_age, aes(x=age, y= mean_income, col= sex)) + geom_line()

문제 8

ggplot(data = sex_income, aes(x= sex, y= mean_income, fill= ageg)) +geom_col()+ scale_x_discrete(limits= c("female","male"))

문제 9