APIを使ってデータをとってきて整形してドン

APIを使ってデータを取ってきたい状況、あると思います。
そんな時はRCurlでゲットしてきて、JSON形式であればRJSONIO、XMLであればXMLを使えばよい。
自分の場合、JSONの方が扱いやすい印象があるのでJSONでとれる時はJSONでとることにしています。
以下コード例(リクルートのチラシ部!APIを使用)。

チラシ部API
http://webservice.recruit.co.jp/townmarket/reference.html

library(RCurl)
library(RJSONIO)
library(stringr) #これは使わなくてもよい。

APIkey <- "dousiyoumonaibokunitensigaoritekita" #そのサイト(今回はリクルート)から発行されたAPIキー
URL <- sprintf("http://webservice.recruit.co.jp/townmarket/insertion/v1?city=13111&key=%s&format=json&count=100", APIkey)

#API経由でデータをとってくる

(ALLcount <- fromJSON(getURL(URL))$results$results_available)

smp <- NULL
for(n in seq(1, ALLcount, by=100)){
  URL2 <- str_c(URL, "&start=", n) #paste関数でもよい。ただしその場合sep=""とすること
  smp0 <- fromJSON(getURL(URL2))$results$insertion
  smp <- c(smp, smp0)
  }

#データをリスト形式からデータフレームに整形
#NULLが入っている項目を適宜埋める

res <- NULL
for(i in 1:length(smp)){
  if(is.null(smp[[i]]$start_date))smp[[i]]$start_date <- ""
  if(is.null(smp[[i]]$end_date))smp[[i]]$end_date <- ""
  if(is.null(smp[[i]]$store$infomation))smp[[i]]$store$infomation <- ""
  if(is.null(smp[[i]]$store$store_hours))smp[[i]]$store$store_hours <- ""
  if(is.null(smp[[i]]$store$closed))smp[[i]]$store$closed <- ""
  if(is.null(smp[[i]]$store$parking))smp[[i]]$store$parking <- ""
  res0 <- unlist(smp[[i]])
  res <- rbind(res, res0)
  }
rownames(res) <- NULL

#データフレームへの変換
#文字コードがUTF-8で返ってくるのでwindowsの場合CP932に変換
data <- data.frame(iconv(res, from="utf-8", to="CP932"), stringsAsFactors=FALSE)