SlideShare a Scribd company logo
2012年11月5日
                    FOSS4G 2012 Tokyo
                   @東京大学柏キャンパス




RでGIS ハンズオンセッション


NPO法人オープンコンシェルジュ/OSGeo.JP
         星田侑久
Rについて
    R
    http://www.r-project.org/

    R(wikipedia)
    http://ja.wikipedia.org/wiki/R%E8%A8%80%E8
    %AA%9E

    Rjpwiki
    http://www.okada.jp.org/RWiki/

    RでGIS
    http://www.okada.jp.org/RWiki/?%A3%D2%A4
    %C7%A3%C7%A3%C9%A3%D3


2
Rについて
    商用版はS-PLUS
    いいところ
     データ量が多くても平気
     扱える分析手法が豊富
     やろうと思えば空間情報を用いた分析は
    いろいろできる



3
Rのインストール
    windows, mac, linuxで動作可能
    http://cran.md.tsukuba.ac.jp/




4
とりあえず動かしてみる
    # xに1を代入
    x <- 1
    x
    # yに1を代入
    y <- 2
    y
    # xとyを足したものをzに代入
    z <- sum(x, y)
    z



5
使用するデータ
    【地図で見る統計(統計GIS)】
    http://www.e-stat.go.jp/SG2/toukeichiri/TopFrame.do?fromPage=init&toPage=download

    ①平成22年国勢調査(小地域)
     東京都目黒区、世界測地系平面直角第9系、shp
    ②住宅の建て方別世帯数(小地域)
     東京都目黒区、txt

    【国土数値情報ダウンロードサービス】
    http://nlftp.mlit.go.jp/ksj/gml/gml_datalist.html

    ③鉄道データ、世界測地系緯度経度、shp

6
概要
    1.データのインポート
    2.データの結合
    3.データ加工
    4.グラフの描画
    5.クラスター分析
    6.主題図の作成



7
パッケージのインストール(オフライン)

    パッケージ
    ●R言語のプログラムを配布用の形式に保存したもの
    ●関数やデータセット、リファレンスマニュアルなどがひ
    とまとめにされた、いわば出来合いのアプリケーション・
    関数ライブラリ・データベース

    #パッケージが格納されているフォルダの確認
    .libPaths()

    上記のフォルダにPackageフォルダ内のデータをコピー



8
パッケージのインストール(オンライン)

    #パッケージのインストール
    install.packages(“maptools”)

    #パッケージの読み込み
    library(maptools)




9
作業ディレクトリの設定
     #作業ディレクトリの設定
     setwd("フルパス")
     c:¥temp → c:¥¥temp
             → c:/temp

     #windowsの場合
     ¥WORK¥win

     #mac、linuxの場合
     ¥WORK¥mac
10
データのインポート
     #shpをインポート
     #目黒区
     meguro01 <- readShapePoly("h22ka13110.shp")
     #座標系の設定
     proj4string(meguro01) <-
     CRS("+init=epsg:2451")
     #画面に表示
     plot(meguro01)
     #ヘッダーの表示
     names(meguro01)
     #サマリーの表示
     summary(meguro01)


11
投影変換
     EPSGコード
       地理座標系をあらわすコード
     http://spatialreference.org/
     https://sites.google.com/site/gistoolboxes/

     meguro02 <-
      spTransform(
         meguro01,
         CRS = CRS("+init=epsg:4612"))



12
データのインポート
     #dbfをインポート
     dbf01 <- read.dbf("h22ka13110.dbf")
     #属性データをインポート
     txt01 <-
     read.csv("tblT000577C13110.txt")
     #型の違いを確認
     class(meguro02)
     #カラムへのアクセス
     meguro02$KEY_CODE

13
データの結合
     #単純にmergeすると型が変わる
     tmp <- merge(meguro02, txt01,
     by="KEY_CODE")
     class(tmp)

     #sort=Fオプションが大切
     meguro03 <- meguro02
     meguro03@data <-
          merge(meguro02@data,
                txt01,
                by="KEY_CODE", sort=F)
14
ひとやすみ
     #関数のhelp
     help(readShapePoly)

     各パッケージのドキュメント
     http://cran.r-project.org/web/packages/maptools/maptools.pdf
     http://cran.r-project.org/web/packages/sp/sp.pdf




15
データ加工
     #演算
     #数値型に変換して演算
     #一戸建て世帯割合=一戸建て世帯/世帯数
     meguro03$p000577002 <-
     as.numeric(as.character(meguro03$T000577002)) /
     as.numeric(as.character(meguro03$T000577001))




16
データ加工
     #欠損値を0埋め
     meguro03$p000577003 <-
           ifelse(is.na(meguro03$p000577003),
                  0,
                  meguro03$p000577003)
     #確認
     subset(meguro03@data,
            KEY_CODE == 13110001004,
            c(T000577001,T000577002,T000577003,T000577004,
              T000577005,T000577006,T000577007,T000577008,
              T000577009))
     #基本統計量
     summary(as.numeric
             (as.character
              (meguro03@data$T000577003)))

17
グラフの描画
     #ヒストグラム
     hist(meguro03$p000577002,
          xlim=c(0, 1), ylim=c(0, 20),
          main="ikkodate", xlab="pro",
          col="purple")

     #散布図
     plot(meguro03$p000577002,
          meguro03@data$p000577004,
          xlab="pro_ikkodate", ylab="pro_kyoudou",
          main="scatter plot",
          cex=1, pch=20, col="green",
          xlim=c(0, 1), ylim=c(0, 1))
18
クラスター分析
     #クラスター分析に投入する項目を抽出
     cluster01 <-
        meguro03@data[,
          c("p000577002","p000577003","p000577005",
            "p000577006","p000577007","p000577008",
            "p000577009")]

     #クラスター分析の実行
     cluster02 <- pam(cluster01, k=3)

     #クラスター分析の結果を図形データに結合
     meguro03$cluster.nm <- cluster02$clustering




19
クラスター分析の結果の解釈
     #クラスターのグループごとに一戸建世帯割合を集計
     (平均)
     barplot(
       by(
          meguro03$p000577002,
          meguro03$cluster.nm,
          mean),
       main="ikkodate")

     #1;共同住宅3~5階建が多い
     #2;一戸建が多い
     #3;共同住宅6~階建が多い
20
主題図の作成
     #shpへエクスポート
     writePolyShape(meguro03, "cluster.shp")

     #閾値の数
     class <- classIntervals(meguro03$cluster.nm, 3)

     #色の設定
     colcode <- findColours(class, brewer.pal(3,"Accent"))

     #凡例のラベル
     names(attr(colcode, "table"))[1] <- "1"
     names(attr(colcode, "table"))[2] <- "2"
     names(attr(colcode, "table"))[3] <- "3"



21
主題図の作成
     #PDFへ出力、日本語も使えるように
     pdf("meguro.pdf",family = "Japan1GothicBBB")
     #クラスター分析の結果を格納したレイヤー
       plot(meguro03,
             xlim=c(139.6496,139.7295),
             ylim=c(35.5973,35.6734),
             col=colcode,
             axe=TRUE)
     #地図のタイトル
       title("目黒区")

22
主題図の作成
     #レイヤーの重ね合わせ
      par(new=T)
     #線路レイヤー
      plot(railroad,
           xlim=c(139.6496,139.7295),
           ylim=c(35.5973,35.6734),
           col="black",
           lwd=1)
     #レイヤーの重ね合わせ
      par(new=T)

23
主題図の作成
     #駅レイヤー
      plot(station,
           xlim=c(139.6496,139.7295),
           ylim=c(35.5973,35.6734),
           col = "red",
           lwd = 3)
     #レイヤーの重ね合わせ
      par(new=T)
     #地図の凡例
      legend(139.6496,35.6734,
              legend=names(attr(colcode, "table")),
              fill=attr(colcode, "palette"),
              cex=0.6,
              bg='gray')


24
主題図の作成
     #町丁目名のラベル、ハロー
       invisible(
          text(getSpPPolygonsLabptSlots(meguro03),
               labels=as.character(meguro03$MOJI),
               cex=0.25,
               col="white",
               font=2))
       invisible(
          text(getSpPPolygonsLabptSlots(meguro03),
               labels=as.character(meguro03$MOJI),
               cex=0.25,
               col="black",
               font=1))
     #PDF出力の終了
     dev.off()

25
参考書籍
     谷村 晋         古谷知之
     地理空間データ分析    Rによる空間データの統計分析




26

More Related Content

What's hot

データとは何か
データとは何かデータとは何か
データとは何か
Kenta Suzuki
 
diffの真髄
diffの真髄diffの真髄
diffの真髄
fuku68
 
Pgunconf 20121212-postgeres fdw
Pgunconf 20121212-postgeres fdwPgunconf 20121212-postgeres fdw
Pgunconf 20121212-postgeres fdw
Toshi Harada
 
Lt ingaoho-jsonb+postgeres fdw
Lt ingaoho-jsonb+postgeres fdwLt ingaoho-jsonb+postgeres fdw
Lt ingaoho-jsonb+postgeres fdw
Toshi Harada
 
CG2013 12
CG2013 12CG2013 12
CG2013 12
shiozawa_h
 
第12回計算機構成
第12回計算機構成第12回計算機構成
第12回計算機構成
眞樹 冨澤
 
第10回 計算機構成
第10回 計算機構成第10回 計算機構成
第10回 計算機構成
眞樹 冨澤
 
SQL勉強会 初級編
SQL勉強会 初級編SQL勉強会 初級編
SQL勉強会 初級編
Kazuma Hidaka
 
機械学習
機械学習機械学習
機械学習
ssusere8ae711
 
統計解析言語Rにおける大規模データ管理のためのboost.interprocessの活用
統計解析言語Rにおける大規模データ管理のためのboost.interprocessの活用統計解析言語Rにおける大規模データ管理のためのboost.interprocessの活用
統計解析言語Rにおける大規模データ管理のためのboost.interprocessの活用Shintaro Fukushima
 
mmapパッケージを使ってお手軽オブジェクト管理
mmapパッケージを使ってお手軽オブジェクト管理mmapパッケージを使ってお手軽オブジェクト管理
mmapパッケージを使ってお手軽オブジェクト管理Shintaro Fukushima
 
R intro
R introR intro
FNA provime pranuese teste
FNA provime pranuese testeFNA provime pranuese teste
FNA provime pranuese teste
Arton Feta
 
K010 appstat201201
K010 appstat201201K010 appstat201201
K010 appstat201201t2tarumi
 
kagamicomput201707
kagamicomput201707kagamicomput201707
kagamicomput201707
swkagami
 
wakuwaku Scala ~Scala入門勉強会~ 資料
wakuwaku Scala ~Scala入門勉強会~ 資料wakuwaku Scala ~Scala入門勉強会~ 資料
wakuwaku Scala ~Scala入門勉強会~ 資料
Mizuki Yamanaka
 
Boost.B-tree introduction
Boost.B-tree introductionBoost.B-tree introduction
Boost.B-tree introduction
Takayuki Goto
 

What's hot (20)

データとは何か
データとは何かデータとは何か
データとは何か
 
diffの真髄
diffの真髄diffの真髄
diffの真髄
 
Pgunconf 20121212-postgeres fdw
Pgunconf 20121212-postgeres fdwPgunconf 20121212-postgeres fdw
Pgunconf 20121212-postgeres fdw
 
Lt ingaoho-jsonb+postgeres fdw
Lt ingaoho-jsonb+postgeres fdwLt ingaoho-jsonb+postgeres fdw
Lt ingaoho-jsonb+postgeres fdw
 
CG2013 12
CG2013 12CG2013 12
CG2013 12
 
第12回計算機構成
第12回計算機構成第12回計算機構成
第12回計算機構成
 
第10回 計算機構成
第10回 計算機構成第10回 計算機構成
第10回 計算機構成
 
SQL勉強会 初級編
SQL勉強会 初級編SQL勉強会 初級編
SQL勉強会 初級編
 
機械学習
機械学習機械学習
機械学習
 
統計解析言語Rにおける大規模データ管理のためのboost.interprocessの活用
統計解析言語Rにおける大規模データ管理のためのboost.interprocessの活用統計解析言語Rにおける大規模データ管理のためのboost.interprocessの活用
統計解析言語Rにおける大規模データ管理のためのboost.interprocessの活用
 
mmapパッケージを使ってお手軽オブジェクト管理
mmapパッケージを使ってお手軽オブジェクト管理mmapパッケージを使ってお手軽オブジェクト管理
mmapパッケージを使ってお手軽オブジェクト管理
 
python-geohex
python-geohexpython-geohex
python-geohex
 
Rust samurai#01
Rust samurai#01Rust samurai#01
Rust samurai#01
 
R intro
R introR intro
R intro
 
FNA provime pranuese teste
FNA provime pranuese testeFNA provime pranuese teste
FNA provime pranuese teste
 
K010 appstat201201
K010 appstat201201K010 appstat201201
K010 appstat201201
 
kagamicomput201707
kagamicomput201707kagamicomput201707
kagamicomput201707
 
wakuwaku Scala ~Scala入門勉強会~ 資料
wakuwaku Scala ~Scala入門勉強会~ 資料wakuwaku Scala ~Scala入門勉強会~ 資料
wakuwaku Scala ~Scala入門勉強会~ 資料
 
Boost.B-tree introduction
Boost.B-tree introductionBoost.B-tree introduction
Boost.B-tree introduction
 
Rの高速化
Rの高速化Rの高速化
Rの高速化
 

Similar to RでGISハンズオンセッション

ALPSチュートリアル(6) Matplotlib入門
ALPSチュートリアル(6) Matplotlib入門ALPSチュートリアル(6) Matplotlib入門
ALPSチュートリアル(6) Matplotlib入門
Computational Materials Science Initiative
 
R言語勉強会#10.pdf
R言語勉強会#10.pdfR言語勉強会#10.pdf
R言語勉強会#10.pdf
Takuya Kubo
 
Rデモ03_データ分析編2016
Rデモ03_データ分析編2016Rデモ03_データ分析編2016
Rデモ03_データ分析編2016
wada, kazumi
 
[機械学習]文章のクラス分類
[機械学習]文章のクラス分類[機械学習]文章のクラス分類
[機械学習]文章のクラス分類
Tetsuya Hasegawa
 
Halide による画像処理プログラミング入門
Halide による画像処理プログラミング入門Halide による画像処理プログラミング入門
Halide による画像処理プログラミング入門
Fixstars Corporation
 
Rを用いたGIS
Rを用いたGISRを用いたGIS
Rを用いたGIS
Mizutani Takayuki
 
つくってあそぼ ラムダ計算インタプリタ
つくってあそぼ ラムダ計算インタプリタつくってあそぼ ラムダ計算インタプリタ
つくってあそぼ ラムダ計算インタプリタ
京大 マイコンクラブ
 
R_note_01_ver1.1
R_note_01_ver1.1 R_note_01_ver1.1
R_note_01_ver1.1
Satoshi Kume
 
Gnuplotあれこれ
GnuplotあれこれGnuplotあれこれ
Gnuplotあれこれ
Maruyama Tetsutaro
 
Siv3Dで楽しむゲームとメディアアート開発
Siv3Dで楽しむゲームとメディアアート開発Siv3Dで楽しむゲームとメディアアート開発
Siv3Dで楽しむゲームとメディアアート開発
Ryo Suzuki
 
データサイエンスワールドからC++を眺めてみる
データサイエンスワールドからC++を眺めてみるデータサイエンスワールドからC++を眺めてみる
データサイエンスワールドからC++を眺めてみるShintaro Fukushima
 
プログラミング技法特論第8回
プログラミング技法特論第8回プログラミング技法特論第8回
プログラミング技法特論第8回Noritada Shimizu
 
Python 機械学習プログラミング データ分析ライブラリー解説編
Python 機械学習プログラミング データ分析ライブラリー解説編Python 機械学習プログラミング データ分析ライブラリー解説編
Python 機械学習プログラミング データ分析ライブラリー解説編
Etsuji Nakai
 
「ベイズ推定でパラメータリスクを捉える &優れたサンプラーとしてのMCMC」の実装例rstanコード
「ベイズ推定でパラメータリスクを捉える &優れたサンプラーとしてのMCMC」の実装例rstanコード「ベイズ推定でパラメータリスクを捉える &優れたサンプラーとしてのMCMC」の実装例rstanコード
「ベイズ推定でパラメータリスクを捉える &優れたサンプラーとしてのMCMC」の実装例rstanコード
基晴 出井
 
Python Data-Visualization Package Status
Python Data-Visualization Package StatusPython Data-Visualization Package Status
Python Data-Visualization Package Status
Yukio Okuda
 
R入門とgoogle map +α
R入門とgoogle map +αR入門とgoogle map +α
R入門とgoogle map +α
kobexr
 
空間統計を使って地価分布図を描いてみる
空間統計を使って地価分布図を描いてみる空間統計を使って地価分布図を描いてみる
空間統計を使って地価分布図を描いてみる
Yukihiro NAKAJIMA
 

Similar to RでGISハンズオンセッション (20)

ALPSチュートリアル(6) Matplotlib入門
ALPSチュートリアル(6) Matplotlib入門ALPSチュートリアル(6) Matplotlib入門
ALPSチュートリアル(6) Matplotlib入門
 
R言語勉強会#10.pdf
R言語勉強会#10.pdfR言語勉強会#10.pdf
R言語勉強会#10.pdf
 
Rデモ03_データ分析編2016
Rデモ03_データ分析編2016Rデモ03_データ分析編2016
Rデモ03_データ分析編2016
 
[機械学習]文章のクラス分類
[機械学習]文章のクラス分類[機械学習]文章のクラス分類
[機械学習]文章のクラス分類
 
Halide による画像処理プログラミング入門
Halide による画像処理プログラミング入門Halide による画像処理プログラミング入門
Halide による画像処理プログラミング入門
 
KMLとR言語
KMLとR言語KMLとR言語
KMLとR言語
 
Rを用いたGIS
Rを用いたGISRを用いたGIS
Rを用いたGIS
 
つくってあそぼ ラムダ計算インタプリタ
つくってあそぼ ラムダ計算インタプリタつくってあそぼ ラムダ計算インタプリタ
つくってあそぼ ラムダ計算インタプリタ
 
R_note_01_ver1.1
R_note_01_ver1.1 R_note_01_ver1.1
R_note_01_ver1.1
 
Gnuplotあれこれ
GnuplotあれこれGnuplotあれこれ
Gnuplotあれこれ
 
Siv3Dで楽しむゲームとメディアアート開発
Siv3Dで楽しむゲームとメディアアート開発Siv3Dで楽しむゲームとメディアアート開発
Siv3Dで楽しむゲームとメディアアート開発
 
データサイエンスワールドからC++を眺めてみる
データサイエンスワールドからC++を眺めてみるデータサイエンスワールドからC++を眺めてみる
データサイエンスワールドからC++を眺めてみる
 
Prosym2012
Prosym2012Prosym2012
Prosym2012
 
Rでreproducible research
Rでreproducible researchRでreproducible research
Rでreproducible research
 
プログラミング技法特論第8回
プログラミング技法特論第8回プログラミング技法特論第8回
プログラミング技法特論第8回
 
Python 機械学習プログラミング データ分析ライブラリー解説編
Python 機械学習プログラミング データ分析ライブラリー解説編Python 機械学習プログラミング データ分析ライブラリー解説編
Python 機械学習プログラミング データ分析ライブラリー解説編
 
「ベイズ推定でパラメータリスクを捉える &優れたサンプラーとしてのMCMC」の実装例rstanコード
「ベイズ推定でパラメータリスクを捉える &優れたサンプラーとしてのMCMC」の実装例rstanコード「ベイズ推定でパラメータリスクを捉える &優れたサンプラーとしてのMCMC」の実装例rstanコード
「ベイズ推定でパラメータリスクを捉える &優れたサンプラーとしてのMCMC」の実装例rstanコード
 
Python Data-Visualization Package Status
Python Data-Visualization Package StatusPython Data-Visualization Package Status
Python Data-Visualization Package Status
 
R入門とgoogle map +α
R入門とgoogle map +αR入門とgoogle map +α
R入門とgoogle map +α
 
空間統計を使って地価分布図を描いてみる
空間統計を使って地価分布図を描いてみる空間統計を使って地価分布図を描いてみる
空間統計を使って地価分布図を描いてみる
 

RでGISハンズオンセッション

  • 1. 2012年11月5日 FOSS4G 2012 Tokyo @東京大学柏キャンパス RでGIS ハンズオンセッション NPO法人オープンコンシェルジュ/OSGeo.JP 星田侑久
  • 2. Rについて R http://www.r-project.org/ R(wikipedia) http://ja.wikipedia.org/wiki/R%E8%A8%80%E8 %AA%9E Rjpwiki http://www.okada.jp.org/RWiki/ RでGIS http://www.okada.jp.org/RWiki/?%A3%D2%A4 %C7%A3%C7%A3%C9%A3%D3 2
  • 3. Rについて 商用版はS-PLUS いいところ データ量が多くても平気 扱える分析手法が豊富 やろうと思えば空間情報を用いた分析は いろいろできる 3
  • 4. Rのインストール windows, mac, linuxで動作可能 http://cran.md.tsukuba.ac.jp/ 4
  • 5. とりあえず動かしてみる # xに1を代入 x <- 1 x # yに1を代入 y <- 2 y # xとyを足したものをzに代入 z <- sum(x, y) z 5
  • 6. 使用するデータ 【地図で見る統計(統計GIS)】 http://www.e-stat.go.jp/SG2/toukeichiri/TopFrame.do?fromPage=init&toPage=download ①平成22年国勢調査(小地域) 東京都目黒区、世界測地系平面直角第9系、shp ②住宅の建て方別世帯数(小地域) 東京都目黒区、txt 【国土数値情報ダウンロードサービス】 http://nlftp.mlit.go.jp/ksj/gml/gml_datalist.html ③鉄道データ、世界測地系緯度経度、shp 6
  • 7. 概要 1.データのインポート 2.データの結合 3.データ加工 4.グラフの描画 5.クラスター分析 6.主題図の作成 7
  • 8. パッケージのインストール(オフライン) パッケージ ●R言語のプログラムを配布用の形式に保存したもの ●関数やデータセット、リファレンスマニュアルなどがひ とまとめにされた、いわば出来合いのアプリケーション・ 関数ライブラリ・データベース #パッケージが格納されているフォルダの確認 .libPaths() 上記のフォルダにPackageフォルダ内のデータをコピー 8
  • 9. パッケージのインストール(オンライン) #パッケージのインストール install.packages(“maptools”) #パッケージの読み込み library(maptools) 9
  • 10. 作業ディレクトリの設定 #作業ディレクトリの設定 setwd("フルパス") c:¥temp → c:¥¥temp → c:/temp #windowsの場合 ¥WORK¥win #mac、linuxの場合 ¥WORK¥mac 10
  • 11. データのインポート #shpをインポート #目黒区 meguro01 <- readShapePoly("h22ka13110.shp") #座標系の設定 proj4string(meguro01) <- CRS("+init=epsg:2451") #画面に表示 plot(meguro01) #ヘッダーの表示 names(meguro01) #サマリーの表示 summary(meguro01) 11
  • 12. 投影変換 EPSGコード 地理座標系をあらわすコード http://spatialreference.org/ https://sites.google.com/site/gistoolboxes/ meguro02 <- spTransform( meguro01, CRS = CRS("+init=epsg:4612")) 12
  • 13. データのインポート #dbfをインポート dbf01 <- read.dbf("h22ka13110.dbf") #属性データをインポート txt01 <- read.csv("tblT000577C13110.txt") #型の違いを確認 class(meguro02) #カラムへのアクセス meguro02$KEY_CODE 13
  • 14. データの結合 #単純にmergeすると型が変わる tmp <- merge(meguro02, txt01, by="KEY_CODE") class(tmp) #sort=Fオプションが大切 meguro03 <- meguro02 meguro03@data <- merge(meguro02@data, txt01, by="KEY_CODE", sort=F) 14
  • 15. ひとやすみ #関数のhelp help(readShapePoly) 各パッケージのドキュメント http://cran.r-project.org/web/packages/maptools/maptools.pdf http://cran.r-project.org/web/packages/sp/sp.pdf 15
  • 16. データ加工 #演算 #数値型に変換して演算 #一戸建て世帯割合=一戸建て世帯/世帯数 meguro03$p000577002 <- as.numeric(as.character(meguro03$T000577002)) / as.numeric(as.character(meguro03$T000577001)) 16
  • 17. データ加工 #欠損値を0埋め meguro03$p000577003 <- ifelse(is.na(meguro03$p000577003), 0, meguro03$p000577003) #確認 subset(meguro03@data, KEY_CODE == 13110001004, c(T000577001,T000577002,T000577003,T000577004, T000577005,T000577006,T000577007,T000577008, T000577009)) #基本統計量 summary(as.numeric (as.character (meguro03@data$T000577003))) 17
  • 18. グラフの描画 #ヒストグラム hist(meguro03$p000577002, xlim=c(0, 1), ylim=c(0, 20), main="ikkodate", xlab="pro", col="purple") #散布図 plot(meguro03$p000577002, meguro03@data$p000577004, xlab="pro_ikkodate", ylab="pro_kyoudou", main="scatter plot", cex=1, pch=20, col="green", xlim=c(0, 1), ylim=c(0, 1)) 18
  • 19. クラスター分析 #クラスター分析に投入する項目を抽出 cluster01 <- meguro03@data[, c("p000577002","p000577003","p000577005", "p000577006","p000577007","p000577008", "p000577009")] #クラスター分析の実行 cluster02 <- pam(cluster01, k=3) #クラスター分析の結果を図形データに結合 meguro03$cluster.nm <- cluster02$clustering 19
  • 20. クラスター分析の結果の解釈 #クラスターのグループごとに一戸建世帯割合を集計 (平均) barplot( by( meguro03$p000577002, meguro03$cluster.nm, mean), main="ikkodate") #1;共同住宅3~5階建が多い #2;一戸建が多い #3;共同住宅6~階建が多い 20
  • 21. 主題図の作成 #shpへエクスポート writePolyShape(meguro03, "cluster.shp") #閾値の数 class <- classIntervals(meguro03$cluster.nm, 3) #色の設定 colcode <- findColours(class, brewer.pal(3,"Accent")) #凡例のラベル names(attr(colcode, "table"))[1] <- "1" names(attr(colcode, "table"))[2] <- "2" names(attr(colcode, "table"))[3] <- "3" 21
  • 22. 主題図の作成 #PDFへ出力、日本語も使えるように pdf("meguro.pdf",family = "Japan1GothicBBB") #クラスター分析の結果を格納したレイヤー plot(meguro03, xlim=c(139.6496,139.7295), ylim=c(35.5973,35.6734), col=colcode, axe=TRUE) #地図のタイトル title("目黒区") 22
  • 23. 主題図の作成 #レイヤーの重ね合わせ par(new=T) #線路レイヤー plot(railroad, xlim=c(139.6496,139.7295), ylim=c(35.5973,35.6734), col="black", lwd=1) #レイヤーの重ね合わせ par(new=T) 23
  • 24. 主題図の作成 #駅レイヤー plot(station, xlim=c(139.6496,139.7295), ylim=c(35.5973,35.6734), col = "red", lwd = 3) #レイヤーの重ね合わせ par(new=T) #地図の凡例 legend(139.6496,35.6734, legend=names(attr(colcode, "table")), fill=attr(colcode, "palette"), cex=0.6, bg='gray') 24
  • 25. 主題図の作成 #町丁目名のラベル、ハロー invisible( text(getSpPPolygonsLabptSlots(meguro03), labels=as.character(meguro03$MOJI), cex=0.25, col="white", font=2)) invisible( text(getSpPPolygonsLabptSlots(meguro03), labels=as.character(meguro03$MOJI), cex=0.25, col="black", font=1)) #PDF出力の終了 dev.off() 25
  • 26. 参考書籍 谷村 晋 古谷知之 地理空間データ分析 Rによる空間データの統計分析 26