Summary

국내 유학중인 외국인 유학생 데이터의 현황을 가시화 해서 보여준다. 데이터 분석 및 가시화 목적으로 연습해본다.

우리나라를 가장 많이 찾은 유학생의 나라별 순위를 살펴보고, 나라별로 우리나라에 방문한 목적을 살펴보도록 한다.

출처: 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)