국내 유학중인 외국인 유학생 데이터의 현황을 가시화 해서 보여준다. 데이터 분석 및 가시화 목적으로 연습해본다.
우리나라를 가장 많이 찾은 유학생의 나라별 순위를 살펴보고, 나라별로 우리나라에 방문한 목적을 살펴보도록 한다.
출처: https://www.data.go.kr/dataset/3069982/fileData.do
배운점:
library(tidyr)
library(dplyr)
library(ggplot2)
df_data <- read.csv(file = './170819-유학생_개방데이터_201706-utf8.csv', header = TRUE)
전체 내용을 살펴 본다.
summary(df_data)
## 성별 생년 국적명 체류자격
## 남:52381 Min. :1936 중국 :65219 대학부설어학원연수:42755
## 여:67786 1st Qu.:1991 베트남 :20371 학사유학 :39393
## Median :1994 몽골 : 6412 석사유학 :19378
## Mean :1993 우즈베키스탄: 3048 교환학생 : 9479
## 3rd Qu.:1996 일본 : 2727 박사유학 : 6952
## Max. :2004 파키스탄 : 1362 전문학사 : 2075
## (Other) :21028 (Other) : 135
## 학교명 체류지.시도 체류지.시군구
## 고려대학교 : 5393 서울특별시:45727 동대문구 : 8283
## 학교미상 : 4355 경기도 :14251 성북구 : 6443
## 성균관대학교: 3654 부산광역시: 9047 남구 : 5168
## 건국대학교 : 3186 경상북도 : 6539 서대문구 : 5015
## 경희대학교 : 3029 충청남도 : 5887 체류지미상: 4584
## 한양대학교 : 2912 대전광역시: 5865 광진구 : 4361
## (Other) :97638 (Other) :32851 (Other) :86313
남자가 52,381명이고, 여자는 67,786명이다.
국적별 상위 10개국을 알아보자.
df_data.1 <- df_data %>% group_by(국적명) %>% summarise(total = n()) %>% arrange(desc(total)) %>% head(10)
g <- ggplot(df_data.1, aes(x = reorder(국적명, desc(total)), y = total, fill=국적명)) + geom_bar(stat="identity")
g <- g + labs(x = '국적명', y = '인원수')
g
중국, 베트남, 몽골 순서로 유학을 많이 왔음을 알 수 있다.
중국의 경우 체류 자격별로 상세 정보를 알아보자.
g <- ggplot(df_data[df_data$국적명 == '중국',], aes(x = 체류자격, fill=체류자격)) + geom_bar()
g <- g + theme(text = element_text(family = "나눔명조"))
g <- g + theme(axis.text.x = element_text(angle = 30, hjust = 1, vjust = 1, family = "나눔명조"))
g
학사 유학이 가장 많고 그 다음으로 대학부설어학원연수, 석사유학이 많음을 알 수 있다.
각 나라별로 체류자격 유형의 비중이 달라질까?
#a <- table(df_data$국적명, df_data$체류자격) # 국가별 체류 자격별 갯수를 카운트 한다.
#df_data.2 <- as.data.frame(a) # XXX: table() 결과를 data.frame() 으로 변환한다. 그러면, long format의 데이터 형식이 자동으로 구성된다.
#names(df_data.2) <- c('국적명', '체류자격', '인원수')
# 국적별, 체류자격별 비중을 계산한다.
# XXX: sub-group percentage 계산, group_by %>% summarise(total = n()) %>% mutate(per = total / sum(total))
df_data.3 <- df_data %>% filter(국적명 %in% c('중국', '베트남', '몽골')) %>%
group_by(국적명, 체류자격) %>% summarise(total = n()) %>% mutate(per = total / sum(total))
g <- ggplot(df_data.3, aes(x = 국적명, y = per, fill = 체류자격)) + geom_bar(stat='identity')
g <- g + theme(text = element_text(family = "나눔명조"))
g <- g + theme(axis.text.x = element_text(angle = 30, hjust = 1, vjust = 1, family = "나눔명조"))
g
중국은 학사유학이 많은 비중을 차지하고, 베트남과 몽골은 어학연수로 우리나라를 많이 찾고 있다.
아래는 유학생이 많은 학교 순서이다.
df_data.3 <- df_data %>% group_by(학교명) %>% summarise(total = n()) %>% arrange(desc(total)) %>% head(20)
#df_data.3
g <- ggplot(df_data.3, aes(x = reorder(학교명, desc(total)), y = total, fill = 학교명)) + geom_bar(stat = 'identity')
g <- g + theme(text = element_text(family = "나눔명조"))
g <- g + theme(axis.text.x = element_text(angle = 30, hjust = 1, vjust = 1, family = "나눔명조"))
g <- g + labs(x = '학교명', y = '인원수')
g
고려대학교가 가장 많은 것으로 보여지며, 경희대학교는 순위로는 5위지만, 경희대학교국제캠퍼스와 합하면 고려대학교 다음으로 가장 많은 유학생이 다니는 학교가 된다.
(To be continued)