RESAS-APIをRで使ってみる

  • 12
    いいね
  • 0
    コメント

RESASRESAS-APIをPythonやRubyなどでテストした記事はあったがRでの記事がなかったので、基本的な使い方だけだが記述してみる。

データの取得からデータフレームにするまで

まず、都道府県一覧を取得してみる

library(RCurl)
library(rjson)

url<-'https://opendata.resas-portal.go.jp/'
api<-'api/v1-rc.1/prefectures'
api.key<-'XXXXXX' #←RESAS APIサイトに登録し取得したAPI-KEY

getdata.json<-getURL(paste(url, api, sep = ''), httpheader = paste('X-API-KEY:', api.key))

#JSONをlistに変換
getdata.list<-fromJSON(getdata.json)

#listをデータフレームに変換
prefCode<-as.numeric(lapply(getdata.list$result, '[[', 1))
prefName<-as.character(lapply(getdata.list$result, '[[', 2))
getdata.df<-data.frame(prefCode, prefName)
head(getdata.df)
  prefCode prefName
1        1   北海道
2        2   青森県
3        3   岩手県
4        4   宮城県
5        5   秋田県
6        6   山形県

外国からの東京都への観光客数を取得する

library(ggplot2)
url<-'https://opendata.resas-portal.go.jp/'
api<-'api/v1-rc.1/tourism/foreigners/forTo'
## prefCode=13で東京都
param<-'?year=2015&prefCode=13&regionCode=-&countryCode=-&purpose=2'
api.key<-'XXXXXX' #←RESAS APIサイトに登録し取得したAPI-KEY

getdata.json<-getURL(paste(url, api, param, sep = ''), httpheader = paste('X-API-KEY:', api.key))
getdata.list<-fromJSON(getdata.json)

year<-as.numeric(lapply(getdata.list$result$changes[[1]]$data, '[[', 1))
quarter<-as.numeric(lapply(getdata.list$result$changes[[1]]$data, '[[', 2))
value<-as.numeric(lapply(getdata.list$result$changes[[1]]$data, '[[', 3))
getdata.df<-data.frame(year, quarter, value)
getdata.df
  year quarter   value
1 2014       1  740614
2 2014       2 1027645
3 2014       3 1124134
4 2014       4 1093879
5 2015       1 1249451
6 2015       2 1835057
7 2015       3 1905512
8 2015       4 1620151

特許権者の所在地を取得し、地図上にプロットしてみる

RESAS-API:特許権者の所在地から位置情報を取得し、ggmapでGoogleMapを取得して、地図上に特許権者の所在地をプロットしてみる。東京で試したら23区がほぼ埋まったので、茨城県で試してみる。

library(RCurl)
library(rjson)
library(ggmap)

url<-'https://opendata.resas-portal.go.jp/'
api<-'api/v1-rc.1/patents/locations'
param<-'?cityCode=-&prefCode=08' #←県コードとして茨城県の08を指定している、市は指定せず茨城県の全データを取得
api.key<-'XXXXXX' #←RESAS APIサイトに登録し取得したAPI-KEY

getdata.json<-getURL(paste(url, api, param, sep = ''), httpheader = paste('X-API-KEY:', api.key))

#JSONをlistに変換
getdata.list<-fromJSON(getdata.json)

#listをデータフレームに変換
latitude<-as.numeric(lapply(getdata.list$result, '[[', 6))
longitude<-as.numeric(lapply(getdata.list$result, '[[', 7))
getdata.df<-data.frame(latitude, longitude)
head(getdata.df)

#地図を取得
loc<-c(min(getdata.df$longitude), min(getdata.df$latitude), max(getdata.df$longitude), max(getdata.df$latitude))
M<-ggmap(get_map(location = loc, zoom = 10, source = 'google')) + xlab('') + ylab('')

#地図上に特許権者の所在地をプロット
M + geom_point(aes(x = longitude, y = latitude), colour = 'red', size=1, data = getdata.df)

Rplot.png

右上の日立製作所がある日立市、筑波大や国・民間企業の研究所が集中する研究学園都市のつくば市周辺に特許権者の所在地が集中していることが分かる。