1 공공데이터 선택 기준 [1]

데이터로부터 가치를 만들 수 있는 공공데이터를 다음에서 발견할 수 있다.

  • 시의성: 최신 정보에서 가치를 찾음
  • 흥미
    • 일탈성: 일상에서 벗어난 사건으로 사회질서를 위협하는 사건에서 가치를 찾음
    • 진기성: 일반적인 상식에서 벗어난 비정상적인 사건일수록 가치가 높음
    • 진기성: 일반적인 상식에서 벗어난 비정상적인 이상점(outlier)이 가치가 높음.
    • 인간적 흥미: 흥미로운 사건이 가치가 높음.
    • 선정성: 감정을 자극하는 사건이 가치 혹은 관심이 높음.
    • 저명성: 유명한 사람, 기관, 장소, 물건일수록 가치가 높음.
  • 갈등성: 다툼과 변화에서 가치를 찾음
  • 영향성: 사람, 사회에 미치는 영향이 클수록 가치가 높음.
  • 근접성: 지리적, 심리적, 인간적으로 밀접한 소식일수록 가치가 높음.

2 공공데이터 분석과제

  • 서울 미세먼지 분석
    • 원천 데이터 웹사이트: 서울특별시 대기환경정보
    • [대기질 통계] → [기간별 통계] → [일별평균] → [측정기간], [측정물질]
      • 초미세먼지, 미세먼지, 오존, 이산화질소, 일산화탄소, 아황산가스
  • 수도권 지하철 승하차 인원 분석
    • 원천 데이터 웹사이트: 공공데이터포털
      • 검색창: “지하철 호선별 역별 승하차 인원 정보”
  • 한국인 정신건강 분석
    • 원천 데이터 웹사이트: 한국행정연구원
      • [정보공개] → [DB활용신청] → [이용안내] → [데이터 신청 바로가기]
    • 한국행정연구원 갈등 DB
  • 서울의 음식점 현황 분석
    • 원천 데이터 웹사이트: 지방행정 인허가 데이터 개방
      • [데이터 받기] → [데이터 다운로드] → 전체 데이터 다운로드, 업종 다운로드, 지역 다운로드
  • 한국인의 급여 실태 분석
  • 전국 산불 피해면적

3 갈등 DB

3.1 갈등 DB 첫 테이블

갈등사례DB 첫번째 테이블을 가져온다.

library(tidyverse)
library(httr)
library(rvest)

# 1. 데이터 받아오기 -----
## 1.1 POST() 함수를 사용하여 개표 결과를 수집합니다.
resp <- POST(
    url = 'https://www.kipa.re.kr/site/kipa/conflict/selectCaseList.do',
    body = list(
      pageIndex         = "1",
      searchStartYear   = "",
      searchEndYear     = "",
      searchConfCause   = "",
      searchBizType     = "",
      searchConfType    = "",
      searchConfSubject = "",
      searchCondition   = "all",
      searchKeyword     = ""
    )
  )

conflict_tbl <- content(x = resp, as = 'text') %>% 
  read_html() %>% 
  html_node(xpath = '//*[@id="ConflictCaseVo"]/div/table[2]') %>% 
  html_table(fill=TRUE) %>% 
  # janitor::clean_names() %>% 
  as_tibble() 

conflict_tbl
# A tibble: 10 x 7
    번호 발생시점 갈등원인   갈등성격  갈등주제    갈등주체  제목               
   <int>    <int> <chr>      <chr>     <chr>       <chr>     <chr>              
 1   490     2020 이익갈등   기타      교통        정부-민간-민간… 차량공유-택시사업 갈등(타다)…
 2   489     2019 이익갈등   선호시설  개발(산업,건설)… 정부-정부 대구공항 이전 부지 선정 갈등…
 3   488     2019 이익갈등   비선호시설… 에너지,환경 기타      대전 평촌 LNG 발전소 갈등…
 4   487     2019 이익갈등   정책갈등  보건복지,기타… 정부-민간-민간… 리얼돌 수입 및 판매 갈등…
 5   486     2019 이익-가치갈등… 정책갈등  교통        민간-정부 민식이법' 찬반 갈등
 6   485     2019 이익갈등   기타      교통        민간-정부 부산 서구 송도 해수욕장 해안도로…
 7   484     2019 이익갈등   비선호시설… 환경        정부-정부-민간… 용인-안성 SK하이닉스 방류수 갈…
 8   483     2018 가치갈등   정책갈등  기타        민간-정부 난민 갈등          
 9   482     2018 이익갈등   정책갈등  기타        기타      무인역사 갈등      
10   481     2018 이익갈등   정책갈등  문화/체육   기타      방송광고제도 개선 갈등…

3.2 갈등 DB 함수

갈등사례DB 페이지를 가져오는 함수를 작성한다.

get_conflict_cases <- function(page_index) {
  
  resp <- POST(
      url = 'https://www.kipa.re.kr/site/kipa/conflict/selectCaseList.do',
      body = list(
        pageIndex         = page_index,
        searchStartYear   = "",
        searchEndYear     = "",
        searchConfCause   = "",
        searchBizType     = "",
        searchConfType    = "",
        searchConfSubject = "",
        searchCondition   = "all",
        searchKeyword     = ""
      )
    )
  
  conflict_tbl <- content(x = resp, as = 'text') %>% 
    read_html() %>% 
    html_node(xpath = '//*[@id="ConflictCaseVo"]/div/table[2]') %>% 
    html_table(fill=TRUE) %>% 
    # janitor::clean_names() %>% 
    as_tibble() 
  
  return(conflict_tbl)
}

get_conflict_cases("49")
# A tibble: 10 x 7
    번호 발생시점 갈등원인    갈등성격  갈등주제     갈등주체 제목              
   <int>    <int> <chr>       <chr>     <chr>        <chr>    <chr>             
 1    10     1989 이익갈등    비선호시설… 보건복지     정부-정부… 국립 서울병원 이전 갈등…
 2     9     1989 가치갈등    비선호시설… 개발(산업,건설)… 민간-정부… 국립서울병원 재건축 관련 갈등…
 3     8     1989 이익-가치갈등… 비선호시설… 국방         민간-정부… 제주 해군기지 건설
 4     7     1988 이익갈등    비선호시설… 국방         민간-정부… 경기 화성 매향리 주한미군 사격…
 5     6     1988 가치갈등    기타      문화/체육    민간-정부… 울산 반구 갈등    
 6     5     1987 이익갈등    비선호시설… 환경         민간-정부… 경인운하 건설     
 7     4     1987 이익갈등    기타      국방         민간-정부… 서울 공항 고도제한 완화 갈등…
 8     3     1987 이익갈등    정책갈등  환경         민간-정부… 육상폐기물 해양 배출제..…
 9     2     1980 이익갈등    비선호시설… 국방         민간-정부… 군 사격장(영평) 피해지원…
10     1     1963 이익-가치갈등… 정책갈등  보건복지     민간-민간… 의약분업 갈등     

3.3 갈등 DB 데이터프레임

갈등사례DB 페이지를 가져와서 데이터프레임으로 모두 저장한다.

# page_index_vec <- str_pad(1:49, width = 2, side = "left", pad = "0")

conflict_DB_tbl <- map_df(1:49, get_conflict_cases)

conflict_DB_tbl %>% 
  write_rds("data/conflict_DB_tbl.rds")
conflict_DB_tbl <- read_rds("data/conflict_DB_tbl.rds")

conflict_DB_tbl %>% 
  reactable::reactable()
1. 오대영. R을 이용한 공공데이터 분석. 한나래출판사; 2021.
 

데이터 과학자 이광춘 저작

kwangchun.lee.7@gmail.com