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) # 지역 코드
# 이름 변경
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()
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()
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()
ggplot(data = ageg_income, aes(x= ageg, y= mean_income)) + geom_col() +
scale_x_discrete(limits = c("young", "middle", "old"))
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()
ggplot(data = sex_income, aes(x= sex, y= mean_income, fill= ageg)) +geom_col()+ scale_x_discrete(limits= c("female","male"))