ねらい
RからMySQLにアクセスしてデータを取得する.
前提
データはMySQLに入れてあります.サンプルとして,平成22年国勢調査(小地域),年齢別(5歳階級,4区分),男女別人口データを使いました.データはe-statからダウンロードできます.
ダウンロードしたCSVファイルをMySQLにインポートしてあります.主要なカラムは以下です.
- KEY_CODE:「図形と集計データのリンクコード」とありますが,要は行政区画のコード番号です.
- HYOSHO:行政区画の階層レベルです.1は市区町村レベル,2は町レベル,3は丁目レベルです.
- CITYNAME:市区町村名です.
- NAME:行政区画名です.
- T000573001:人口総計です.
テーブルのイメージは以下です.
データベースの諸元
- データベースのあるサーバ:bar.com
- データベース名:foo
- データベースのユーザ名:foo
- データベースのパスワード:bar
パッケージのインストール
RからMySQLにアクセスするためにはRMySQLというパッケージが必要です.環境に応じてインストールをしてください.依存関係にあるDBIもインストールします.
install.packages("RMySQL")
install.packages("DBI")
RStudioならメニューから簡単にインストールできますね.
スクリプト
実際にMySQLにアクセスするスクリプトは以下になります.
require("RMySQL")
require("ggplot2")
con <- dbConnect(MySQL(), host="bar.com", port=3306, dbname="foo", user="foo", password="bar")
dataset <- dbGetQuery(con, "SELECT * FROM `tblT000573` WHERE HYOSYO=2")
ggplot(data=dataset)+geom_histogram(aes(x=dataset$T000573001))
RMySQLをrequire
し,dbConnect
でデータベースへのコネクタcon
を作成します.引数はホストのアドレス,データベース名,ユーザー名とパスワードです.
コネクタを作成したらdbGetQuery
でクエリを発行します.この例ではテーブル"tbl000573"からHYOSHOが2のレコードを検索しています.
検索結果をdataset
に格納します.dataset
はデータフレームになりますので,dataset$列名
でアクセスが可能です.
dataset
の中身を確認するとこんな感じです.
ggplot2でヒストグラムを書いてみました.T000573001は町内の総人口になります.