티스토리 뷰
setwd("C:/Rdata")
getwd()
#Ctrl + l => 콘솔창 정리
install.packages("foreign")
install.packages("readxl")
library(foreign)
library(dplyr)
library(ggplot2)
library(readxl)
raw_welfare=read.spss(file = "Koweps_hpc10_2015_beta1.sav",
to.data.frame = T)#데이타 프레임 트루
#원본 데이터는 그대로 두고 가공하기 위한 사본을 만듦
welfare=raw_welfare
head(welfare)
tail(welfare)
View(welfare) #()에 해당되는 전체 데이터 보기
str(welfare)
summarise(welfare)
#이름 재정의하기
welfare = rename(welfare,
gender = h10_g3, # 성별
birth = h10_g4, # 태어난 연도
marriage = h10_g10, # 혼인 여부
religion = h10_g11, # 종교유무
income = p1002_8aq1, # 월급
code_job = h10_eco9, # 직종 코드
code_region = h10_reg7) # 지역 코드
head(welfare)
names(welfare)
#주제 : 성별에 따른 급여차이를 분석
class(welfare$gender)
table(welfare$gender)
welfare$gender=ifelse(welfare$gender==9,NA,welfare$gender)
table(is.na(welfare$gender))
welfare$gender=ifelse(welfare$gender==1,"male","female")
kk=table(welfare$gender)
qplot(welfare$gender) #ggplot2 안에 있는 임시적그래프 확인 방법
#barplot으로 확인 하기
barplot(kk,col=c("red","blue")) #f는 빨강, m은 파랑으로 표시
barplot(kk,col=c("red","blue"),ylim=c(0,10000)) #왼쪽에 기준 표시
tt=barplot(kk,col=c("red","blue"),ylim=c(0,10000))
text(tt,kk,label=paste0(kk,"명"),pos=3,col='red',cex=2) #f, m 수치 표시
plot.new() #frame() <<<< 초기화
class(welfare$income) #데이터타입
summary(welfare$income) #for NA유무 체크
welfare$income=ifelse(welfare$income %in%c(0,9999),#0이거나 9999이면 NA로 처리
NA,welfare$income)
table(is.na(welfare$income)) #true = NA값
#성별에 따른 소득
gender_income=data.frame(welfare %>%
filter(!is.na(income)) %>% #na가 아닌 것만 값 가져오기
group_by(gender) %>%
summarise(mean_incom=round(mean(income))))
gender_income
ggplot(data=gender_income,aes(x=reorder(gender,-mean_incom),
y=mean_incom)) +
geom_col(fill=c("red","orange"))+ #알파벳 순서로 색이 들어가서 female이 red가 됨
geom_text(aes(label=paste(gender_income$mean_incom,"만 원")),
vjust=-0.2,col=2,cex=8)+xlab("성별")+ylab("소득") #vjust = 약간 위에 위치
frame() #초기화
#주제 : 연령대에 따른 월급 차이를 분석하시오
class(welfare$birth)
table(welfare$birth)
welfare$birth=ifelse(welfare$birth==9,NA,welfare$birth)
table(is.na(welfare$birth))
kk=table(welfare$birth)
qplot(welfare$birth) #ggplot2 안에 있는 임시적그래프 확인 방법
#barplot으로 확인 하기
barplot(kk,col=rainbow(7)) #f는 빨강, m은 파랑으로 표시
barplot(kk,col=c("red","blue"),ylim=c(0,10000)) #왼쪽에 기준 표시
tt=barplot(kk,col=c("red","blue"),ylim=c(0,10000))
text(tt,kk,label=paste0(kk,"명"),pos=3,col='red',cex=2) #f, m 수치 표시
plot.new() #frame() <<<< 초기화
class(welfare$income) #데이터타입
summary(welfare$income) #for NA유무 체크
welfare$income=ifelse(welfare$income %in%c(0,9999),#0이거나 9999이면 NA로 처리
NA,welfare$income)
table(is.na(welfare$income)) #true = NA값
# birth를 나이로 환산
welfare$age <- 2015 - welfare$birth + 1
summary(welfare$age)
qplot(welfare$age)
head(age_income)
#나이에 따른 소득
age_income=data.frame(welfare %>%
filter(!is.na(income)) %>% #na가 아닌 것만 값 가져오기
group_by(age) %>%
summarise(mean_income=round(mean(income))))
age_income
#꺾은선그래프
ggplot(data = age_income,
aes(x = age, y = mean_income)) +
geom_line(size=1) +
geom_text(aes(label=paste(mean_income,"만 원")),
vjust=-0.6,col=2,cex=2)+xlab("나이")+ylab("소득")
#막대그래프
ggplot(data=age_income,
aes(x=age,y=mean_income)) +
geom_col(fill=rainbow(69))+ #알파벳 순서로 색이 들어가서 female이 red가 됨
geom_text(aes(label=paste(mean_income,"만 원")),
vjust=-0.2,col=2,cex=2)+xlab("나이")+ylab("소득") #vjust = 약간 위에 위치
frame() #초기화
#young(20대 미만) / middle(40대 미만) / old로 표시
welfare <- welfare %>%
mutate(ageg = ifelse(age < 30, "young",
ifelse(age <= 59 , "middle", "old")))
table(welfare$ageg)
qplot(welfare$ageg)
ageg_income <- welfare %>%
filter(!is.na(income)) %>%
group_by(ageg) %>%
summarise(mean_income = round(mean(income)))
ageg_income
ggplot(data = ageg_income,
aes(x = ageg, y = mean_income, fill = mean_income)) +
geom_bar(stat = "identity") +
geom_text(aes(label=paste(mean_income,"만 원")),
vjust=-0.6,col=2,cex=3)+xlab("연령대")+ylab("소득") +
scale_x_discrete(limits = c("young", "middle", "old"))
#나이에 따른 성별로 월급차이 분석
gender_income <- welfare %>%
filter(!is.na(income)) %>%
group_by(age, gender) %>%
summarise(mean_income = round(mean(income)))
gender_income
aa=ggplot(data = gender_income,
aes(x = age, y = mean_income, col = gender)) +
geom_line(size=1) +
geom_text(aes(label=paste(mean_income,"만 원")),
vjust=-0.3,col=2,cex=2)+xlab("연령대")+ylab("소득")
ggplotly(aa)
install.packages("plotly")
library(plotly)
#어떤 직업이 월급을 가장 많이 받는지를 분석하시오
head(welfare$code_job)
library(readxl)
list_job=read_excel("Koweps_Codebook.xlsx",
col_names = T,
sheet = 2)
head(list_job)
welfare=left_join(welfare,list_job,by="code_job")
head(welfare$job.y)
welfare %>%
filter(!is.na(code_job)) %>%
select(code_job,job) %>%
head(10)
job_income = data.frame(welfare %>%
filter(!is.na(job) & !is.na(income)) %>%
group_by(job) %>%
summarise(mean_income = round(mean(income))))
head(job_income)
#급여 상위 10개 직업 보기
top10=job_income %>%
arrange(desc(mean_income)) %>%
head(10)
top10
ggplot(data=top10,
aes(x=reorder(job,-mean_income), y=mean_income))+
geom_col(fill=rainbow(10)) +
coord_flip() +
geom_text(aes(label=paste0(top10$mean_income,"만원")),
hjust=-0.2,col=2,cex=6) +
xlab("직업") + ylab("평균소득득") + ggtitle("직무별 상위 10위의 소득")
#급여 하위 10개 직업
bottom10=job_income %>%
arrange(mean_income) %>%
head(10)
bottom10
ggplot(data=bottom10,
aes(x=reorder(job,-mean_income), y=mean_income, fill = mean_income))+
geom_bar(stat = "identity") +
coord_flip() +
geom_text(aes(label=paste0(bottom10$mean_income,"만원")),
hjust=-0.3,col=2,cex=6) +
xlab("직업") + ylab("평균소득득") + ggtitle("직무별 하위 10위의 소득")
ggplotly(bb)
반응형
LIST
'공부합시다 > 찍먹' 카테고리의 다른 글
[R] 영화 평점에 따른 타이틀 선정크롤링 (0) | 2021.04.13 |
---|---|
[R] rvest pkg for Crawling (0) | 2021.04.13 |
[R] Barplot (0) | 2021.04.13 |
[R] Dygraph pkg (0) | 2021.04.12 |
[R] 텍스트마이닝 (0) | 2021.04.12 |
댓글