6
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

RからMySQLへアクセスする

Last updated at Posted at 2016-03-12

ねらい

RからMySQLにアクセスしてデータを取得する.

前提

データはMySQLに入れてあります.サンプルとして,平成22年国勢調査(小地域),年齢別(5歳階級,4区分),男女別人口データを使いました.データはe-statからダウンロードできます.

Kobito.yy7vk2.png

ダウンロードしたCSVファイルをMySQLにインポートしてあります.主要なカラムは以下です.

  • KEY_CODE:「図形と集計データのリンクコード」とありますが,要は行政区画のコード番号です.
  • HYOSHO:行政区画の階層レベルです.1は市区町村レベル,2は町レベル,3は丁目レベルです.
  • CITYNAME:市区町村名です.
  • NAME:行政区画名です.
  • T000573001:人口総計です.

テーブルのイメージは以下です.

Kobito.saLhUy.png

データベースの諸元

  • データベースのあるサーバ:bar.com
  • データベース名:foo
  • データベースのユーザ名:foo
  • データベースのパスワード:bar

パッケージのインストール

RからMySQLにアクセスするためにはRMySQLというパッケージが必要です.環境に応じてインストールをしてください.依存関係にあるDBIもインストールします.

install.packages("RMySQL")
install.packages("DBI")

RStudioならメニューから簡単にインストールできますね.

スクリプト

実際にMySQLにアクセスするスクリプトは以下になります.

test.r
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の中身を確認するとこんな感じです.

Kobito.YU55ka.png

ggplot2でヒストグラムを書いてみました.T000573001は町内の総人口になります.

Kobito.dzpAox.png

6
8
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
6
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?