オープンデータ(自由に使えるデータ)を使ってみましょう。例えばグラフの例:地球温暖化でも挙げた地球温暖化のデータを取得してグラフを描いてみます:
x = read.csv("http://www.data.jma.go.jp/cpdinfo/temp/list/csv/an_wld.csv",
fileEncoding="SJIS")
matplot(x[1], x[2], type="o", pch=16, xlab="年", ylab="°C")
r = lm(x[[2]] ~ x[[1]])
summary(r) # 詳細な結果を出力
abline(r) # 当てはめた直線をグラフに重ね書きする
このようなオープンデータは,ダウンロードして使うこともできますが,上のようにWebから直接取得して利用することもできます。また,URLの最後に ?
でパラメータを指定して必要なデータを取り出す仕組みもよく使われます。このような利用形態をWeb APIといいます。APIはApplication Programming Interfaceの略です。Web APIはJSON形式でデータを返すのが最近の流行です。詳しくはPython版もご覧ください。
株式会社アイビスが提供している郵便番号検索APIを使ってみましょう。
library(jsonlite)
url = "https://zipcloud.ibsnet.co.jp/api/search?zipcode=5140007"
data = read_json(url)
address = data$results[[1]]
cat(address$address1, address$address2, address$address3, "\n")
livedoor(LINE Corporation)の提供するWeather Hacksは,場所を指定すると天気予報が取得できます。詳細はWebサービス仕様参照。
url = "http://weather.livedoor.com/forecast/webservice/json/v1?city=240010" # 三重県津市
data = read_json(url)
for (x in data$forecasts)
cat(x$dateLabel, "の天気:", x$telop, "\n")
カーリル・版元ドットコムのopenBDは書誌情報・書影を提供しています。
url = "https://api.openbd.jp/v1/get?isbn=978-4-7741-9690-9"
data = read_json(url)
cat("著者名:", data[[1]]$summary$author, "\n")
cat("書名:", data[[1]]$summary$title, "\n")
cat("出版社名:", data[[1]]$summary$publisher, "\n")
cat("出版年月:", data[[1]]$summary$pubdate, "\n")
ハートレイルズのHeartRails Expressは路線/駅名データ等の地理情報を提供しています。
url = "http://express.heartrails.com/api/json?method=getLines&prefecture=三重県"
data = read_json(url)
cat("路線名一覧:\n")
for (i in data$response$line)
cat(i, "\n")
url = "http://express.heartrails.com/api/json?method=getStations&line=近鉄名古屋線"
data = read_json(url)
cat("駅と経度・緯度:\n")
for (i in data$response$station)
cat(i$name, i$x, i$y, "\n")
鳥山優子さんのコンビニお菓子の情報サイトお菓子の虜のWeb API。
url = "https://sysbird.jp/toriko/api/?apikey=guest&format=json&keyword=マシュマロ"
data = read_json(url)
cat("菓子名・メーカー:\n")
for (i in data$item)
cat(i$name, i$maker, "\n")