반응형
오픈API를 활용한 대기오염정보 조회(3)
Chocochip
2017년 12월 31일
이 자료는 R markdown에서 작성하였습니다.
시도별 실시간 측정정보 조회
라이브러리 불러오기
##install.packages("rvest")
##install.packages("XML")
##install.packages("data.table")
library(rvest)
library(XML)
library(data.table)
서울시 정보 조회
url <- "http://openapi.airkorea.or.kr/openapi/services/rest/ArpltnInforInqireSvc/getCtprvnRltmMesureDnsty"
serviceKey <- "?serviceKey=9x8WeUtQ1a6VrfDnAAN3PDJhSp4VFdoqfopYR4K31SeTR08xHjM3W05qW13HYEdKtOAu3U4RSeOfErde0EP2ng%3D%3D"
sido <- "&numOfRows=100&pageSize=1&pageNo=1&startPage=1&sidoName="
sido_name <- "%EC%84%9C%EC%9A%B8"
ver <- "&ver=1.3"
api_url <- paste(url,serviceKey,sido,sido_name,ver,sep="")
data3 <- xmlTreeParse(api_url,useInternalNodes = T, encoding = "UTF-8")
rootNode <- xmlRoot(data3)
items = rootNode[[2]][["items"]]
size=xmlSize(items)
data_subtotal <- list()
test2 <- data.frame()
test3 <- list()
for(i in 1:size)
{
test <- xmlSApply(items[[i]],xmlValue)
test2 <- data.table(Sido="서울",
Sigungu=test[[1]],
Time=test[[3]],
so2=test[[4]],
co=test[[5]],
o3=test[[6]],
no2=test[[7]],
pm10=test[[8]],
pm1024=test[[9]],
pm25=test[[10]],
pm2524=test[[11]],
khai=test[[12]],
khaigrade=test[[13]],
so2grade=test[[14]],
cograde=test[[15]],
o3grade=test[[16]],
no2grade=test[[17]],
pm10grade=test[[18]],
pm25grade=test[[19]],
pm101hgrade=test[[20]],
pm251hgrade=test[[21]])
test3[[i]]=test2
}
test4 <- rbindlist(test3)
서울시 미세먼지 미세먼지(pm25) 막대그래프
attach(test4)
n_co <- as.numeric(co)
n_co[is.na(n_co)] <- 0
##names(n_co) <- Sigungu
barplot(n_co)
측정장소를 x축에 넣고 싶었는데 실패했습니다. 측정장소 길이와 미세먼지 데이터 길이가 다르다고 하네요.
그 부분을 데이터를 확인할 필요가 있을 거 같습니다.
다른 시도도 같이 조회되도록 하겠습니다.
반응형
'R 크롤링' 카테고리의 다른 글
[R] 디아블로3 API를 활용하여 직업별 상위 랭킹 세팅 분포 구하기 첫번째날 (0) | 2018.03.03 |
---|---|
오픈API를 활용한 대기오염정보 조회(4) (0) | 2018.01.01 |
오픈API를 활용한 대기오염정보 조회(2) (2) | 2017.12.30 |
오픈API를 활용한 대기오염정보 조회(1) (0) | 2017.12.29 |
[R크롤링] 8. 웹사이트 스크래핑 예제 : IMDb site (0) | 2017.12.22 |