LoginSignup
17
17

More than 5 years have passed since last update.

RESAS-APIをRで使ってみる

Last updated at Posted at 2016-11-20

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

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

17
17
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
17