オープンデータ(自由に使えるデータ)を使ってみましょう。例えばグラフの例:地球温暖化でも挙げた地球温暖化のデータを取得してグラフを描いてみます:
x = read.csv("https://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")
2021-02-24 13:00:00 のリニューアルによってさまざまなAPI(とは気象庁は言っていない)が使えるようになったようです。例:
url = "https://www.jma.go.jp/bosai/forecast/data/overview_forecast/240000.json" data = read_json(url) cat(data$headlineText, "\n") cat(data$text, "\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 = "https://express.heartrails.com/api/json?method=getLines&prefecture=三重県" data = read_json(url) cat("路線名一覧:\n") for (i in data$response$line) cat(i, "\n") url = "https://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")