R로 공공데이터 가져오기
by Kim
이번에는 XML
라이브러리를 이용하여 서울시 공공데이터를 불러온 후 저장하는 글입니다.
로그인 및 인증키 생성
서울 열린데이터 광장에 들어가서 로그인을 합니다.
다음 원하는 데이터셋을 찾으러 공공데이터
- 데이터셋
을 누릅니다.
원하는 데이터를 찾은 후 해당 페이지로 들어갑니다.
스크롤을 살짝 내려면 아래 페이지를 볼 수 있는데 Open API
- 인증키 신청
으로 들어갑니다. 공공데이터는 인증키 없이도 csv 형식의 파일을 가져올 수 있는 경우도 있지만 인증키 신청을 통해 권한을 인증키를 받은 후에 접근 가능한 경우도 있습니다. 실제로 제가 팀 프로젝트를 할 때는 공공데이터 수집 시 인증키 발급 없이 진행하기도 했습니다.
인증키 신청 페이지로 넘어갔으면 필수항목에 모두 내용을 기재해야하는데 본인의 사용목적을 적당히 첨가하여 신청서를 제출합니다.
공공데이터를 가져오기 위해 인증키 코드를 복사합니다.
공공데이터 가져오기
이제 R 프로그램으로 공공데이터를 가져오도록 하겠습니다. XML 라이브러리를 불러오기 위해 패키지 설치를 먼저 진행합니다.
다음으로는 아까 발급받은 인증키와 URL을 이용하여 공공데이터를 가져옵니다. 8088까지가 메인 주소이며 /
이후는 옵션 값을 입력합니다. sample에는 아까 발급받은 인증키를 입력하고 xml 형식이기 떄문에 타입은 xml입니다. 아까 선택한 데이터셋을 참고하여 서비스 명을 채우고 다음에 오는 숫자 두 개는 각각 데이터 행 시작번호와 끝번호입니다. 즉, 공공데이터 홈페이지에 적혀있는 /1/5
는 1행부터 5행까지
라는 뜻이 되겠습니다.
형식에 맞춰 텍스트를 만든 후 xmlParse 함수를 이용하여 공공데이터를 가져옵니다.
다음으로는 방금 가져온 공공데이터를 데이터프레임 형식으로 전환합니다.
공공데이터 csv로 저장하기
불러온 데이터를 “서울시문화행사공공서비스예약정보.csv”라는 이름으로 저장합니다.
옵션 설명
인자 이름 | 설명 |
---|---|
x | 저장할 객체 |
file | 저장할 파일 |
append | 기존 파일에 추가할지 여부 |
quote | 쌍따옴표를 표시할지 여부(기본값 TRUE) |
sep, eol, na | 구분자, 줄바꿈 표시, 잘못된 문자 표기 |
row.names | 행(row), 열(col)의 이름 저장 여부(기본값 FALSE) |
qmethod | 인용부호를 escape()또는 double(“)표기 설정 |
fileEncoding | 인코딩 설정 |
Subscribe via RSS