brunch

You can make anything
by writing

C.S.Lewis

by 쩐시 Aug 10. 2021

R 프로그래밍 - API 반복 호출 오류

완벽한 논문을 위한 R 프로그래밍 분석

수업을 들으면서 당초 막혔던 부분을 2차로 풀어보니 성공해서 저와 같은 'API호출'문제를 겪고 계신 학생분들에게 큰 힘이되었으면 합니다...!


많이든 fastcampus로 R 프로그래밍 공부를 할텐데 치명적인 단점으로 Q&A가 안된다는 점...저도 막힐때 마다 블로그 돌아돌아 계속 수정해나갔네요 ㅠㅠ


같이 풀어나가 봅시다




공공 데이터 API 반복문 호출

www.data.go.kr " 아파트 매매 상세자료 "


# API 호출


## 지역코드(lawd_cd) 목록 생성


region_cd <- read.csv('region_cd.csv')

View(region_cd)


library(dplyr)


library(data.table)


lawd_cd <- region_cd %>% filter(region %like% '서울특별시')

lawd_cd <- lawd_cd[, 2]


## 연월(deal_ymd) 목록 생성(6자리)


temp <- merge(c(2010:2020), c(1:12))


temp$y <- if_else(temp$y < 10, paste0(0, temp$y), as.character(temp$y))

deal_ymd <- paste0(temp$x, temp$y) %>% as.integer()


## 반복문으로 지역/연월별  API 호출


df <- NULL


api_key <- '복붙'


library(XML)


for (i in lawd_cd) {

  print

  for (l in deal_ymd) {

    url <- paste0('http://openapi.molit.go.kr/OpenAPI_ToolInstallPackage/service/rest/RTMSOBJSvc/getRTMSDataSvcAptTradeDev?LAWD_CD=',i,'&DEAL_YMD=',l,'&serviceKey=',api_key,'&numOfRows=100000')

    raw.data <- xmlTreeParse(url, useInternalNodes = T)

    xml_rootnode <- try(xmlRoot(raw.data))

    xml_result <- xmlToDataFrame(xml_rootnode[[2]][['items']])

    df <- rbind(df, xml_result)

  }

}


이렇게 까지 완성하면 용량이 엄청 큰 excel 파일이 만들어지게 됩니다.

이걸 활용해서 전체 서울 아파트 매매가와 강남 아파트 매매가를 비교하는 등 다양하게 활용가능합니다!


저는 상단의 반복문에서 분명히 강사분의 메모를 보고 똑같이 따라했는데 오류가 나서, 생각해보니 여러가지 프로그래밍 설정도 다를테고, 강사분은 참고로 쓴 것을 저는 그대로 구문인줄 착각하면서 쓰는 등 이런 문제들이 발생했습니다.


모쪼록 패캠에서는 강의내용을 캡처가 아닌 코드문 첨부파일로 주시길... 후... 

작가의 이전글 R 프로그래밍 - PCA 차원축소(img)
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari