본문 바로가기
R 주제/R 기초 및 통계 강의

[R강의] 101. 통계청 데이터 다운받고 R에서 불러오는 방법

by 만다린망고 2020. 9. 23.
반응형

[R강의] 101. 통계청 데이터 다운받고 R에서 불러오는 방법



오늘은 통계청에서 제공하는 국가통계데이터를 다운 받고, R에서 불러오는 방법을 알려드리겠습니다. 


국가 통계 데이터는 아래 사이트에서 다운받을 수 있습니다. 


https://kosis.kr/index/index.do


국가통계포털 사이트입니다. 국가통계포털은 KOSIS라고 부릅니다. Korean Statistical Information Service 의 줄임말입니다. 


우리가 오늘 다운받을 데이터는 '사망원인'데이터입니다. 상단 [국내통계] 탭의 [주제 별 통계]로 들어갑니다. [보건]을 클릭하고 [사망원인통계]를 클릭합니다. (아래 그림 참고)



아래 그림처럼 사망원인 236항목을 클릭합니다. 




시점을 전체로 변경해줍니다. 



항목표두, 시점표측을 선택하고 다운로드합니다. 엑셀을 여실 때 오류가 나는 경우 다른이름으로 저장하셔서 xlsx 포멧으로 저장하시면 됩니다. 




시점이 어디 들어가냐의 차이인데, '항목표두,시점표측'방식이 R에서 데이터를 다루기가 더 편합니다. 



R스튜디오를 켜고 [File]-[Import database]-[From excel]을 클릭합니다. 새 창이 뜨면 Browse를 클릭하여, 우리가 다운받은 엑셀을 선택합니다. 아마 오류가 뜰 것인데요. 이유는 '탭'의 이름이 한글이라서 그렇습니다. 엑셀을 켜고, 탭의 이름을 데이터에서 data로 바꿔줍니다. 다시 불러오면 앞의 화면처럼 불러와집니다. 





Import를 누르지 말고, Code Preview 의 코드를 복사해서 스크립트에 붙여넣습니다. 



데이터 이름을 아래와 같이 간단하게 바꿔줍니다. View함수 안의 이름도 바꿔줍니다. 




코드를 실행합시다. View 함수를 실행했기 때문에 새 창이 뜨며 데이터가 보입니다. 




strinig 함수를 적용해봅시다. 


> str(mydata)

Classes ‘tbl_df’, ‘tbl’ and 'data.frame': 57721 obs. of  6 variables:

 $ ○ 사망원인(236항목)/성/연령(5세)별 사망자수, 사망률 []: chr  "사망원인별(236항목)" "계" "계" "계" ...

 $ ...2                                                   : chr  "성별" "계" "계" "계" ...

 $ ...3                                                   : chr  "연령(5세)별" "계" "계" "계" ...

 $ ...4                                                   : chr  "시점" "1983 년" "1984 년" "1985 년" ...

 $ ...5                                                   : chr  "사망자수[명]" "254563" "236445" "240418" ...

 $ ...6                                                   : chr  "사망률[십만명당]" "637.79999999999995" "585.20000000000005" "589.20000000000005" ...



데이터 타입이 tbl_df 인 것을 알 수 있습니다. tibble 과 data.frame의 혼합형인데요. tibble은 데이터프레임을 수정하여 만든 데이터타입인데요. 일단은 전통적 형태인 데이터프레임을 사용하도록 하겠습니다. data.frame으로 바꿔줍시다. (tibble이 궁금하신 분들은 R 콘솔창에 vignette("tibble") 명령어를 입력하시면 됩니다.)


아래와 같은 함수를 이용하여 데이터프레임으로 바꿔줍니다. 


> mydata=as.data.frame(mydata)

> str(mydata)

'data.frame': 57721 obs. of  6 variables:

 $ ○ 사망원인(236항목)/성/연령(5세)별 사망자수, 사망률 []: chr  "사망원인별(236항목)" "계" "계" "계" ...

 $ ...2                                                   : chr  "성별" "계" "계" "계" ...

 $ ...3                                                   : chr  "연령(5세)별" "계" "계" "계" ...

 $ ...4                                                   : chr  "시점" "1983 년" "1984 년" "1985 년" ...

 $ ...5                                                   : chr  "사망자수[명]" "254563" "236445" "240418" ...

 $ ...6                                                   : chr  "사망률[십만명당]" "637.79999999999995" "585.20000000000005" "589.20000000000005" ...


데이터프레임으로 변형된 것을 확인할 수 있습니다. 


오늘 코드를 모아보면 아래와 같습니다. 


#엑셀 불러오는 패키지

library(readxl)


#엑셀 데이터를 mydata 변수에 저장

mydata <- read_excel("C:/Users/101_DT_1B34E07_20200923115018.xls")


#데이터 내용 새 창에서 보기

View(mydata)


#tbl_df 데이터를 데이터프레임으로 변경

mydata=as.data.frame(mydata)



반응형

댓글