-
[R] xmlToDataFrame()을 이용하여 xml 문서 파싱하기Data Analysis/R 2024. 1. 21. 20:47
Table of Contents
- Introduction
- XML library
- xmlToDataFrame 함수
- Reference
Introduction
웹에 게시된 데이터를 가져오기 위해 크롤러를 만들거나 API를 사용해서 데이터를 수집한 경우 xml 형태로 데이터가 오게 되고 이런 데이터를 깔끔하게 정리하지 않으면 바로 분석에 사용하기 어렵다. 따라서 xml을 테이블 형태로 파싱할 수 있는 기능을 구현해야 하지만 그 때 그때 만들기가 쉽지 않다.
XML library
주로 XML 문서를 읽거나 생성하기 위해 많이 사용하는 라이브러리 중 하나로 R에서 데이터를 크롤링하여 사용하거나 API를 호출해서 데이터를 수집할 경우 데이터를 파싱하기 위해 사용하는 라이브러리 중 하나이다. CRAN Team이 주도하여 만들어진 라이브러리이기 때문에 라이브러리 설치할 때 install.packages() 함수로 자연스럽게 설치가 가능하다.
install.packages("XML") library(XML)
xmlToDataFrame 함수
주로 xmlToDataFrame() 함수를 사용하면, xml 데이터를 손쉽게 데이터프레임으로 변환할 수 있다는 장점을 가진 패키지이다. 다만, xml에 존재하는 리스트를 처리하기 위해서는 nodes 옵션을 사용해야 한다.
URL = "http://apis.data.go.kr/1741000/StanReginCd/getStanReginCdList" # Parameter Setting query = list(ServiceKey = "", type = , pageNo = , numofRows = , flag = , locatadd_nm =) # GET() 함수 GET(URL, query = query) #xmlToDataFrame() 함수 table = xmlToDataFrame(nodes = getNodeSet(XmlParse(cont), "//row"))
이때, xml 문서의 특정 속성을 연속으로 가져오기 위해서 getNodeSet() 함수를 사용하고, <row> 객체들만 가져올 수 있도록 세팅하였다. 그 결과 서울 내 모든 지역의 법정동 코드가 불러와진 것을 알 수 있다.
Reference
"Tools for Parsing and Generating XML within R & S-Plus", https://cran.r-project.org/web/packages/XML/index.html
'Data Analysis > R' 카테고리의 다른 글
[R] WARNING: Rtools is required to build R packages (1) 2023.03.29 [R] 클립보드 활용하여 데이터 불러오기 (0) 2022.05.08 [R] 오프라인 환경을 위한 R 라이브러리 (2) 2022.02.28 [R] .libPaths()를 이용한 "package or namespace load failed" 조치 (0) 2021.09.10 [R] system.time을 이용한 실행 속도 측정 (1) 2021.08.29