RESASデータを「IBM Data Scientist Workbench」でゴニョゴニョしてみた。
http://sapporomkt.blogspot.jp/2017/05/resasibm-data-scientist-workbench.html
今回は、このデータを使って「heatmap」を作ってみます。
最終的には、下記のようなアウトプットを目指します。
<2015年:都道府県別の大規模土地取引件数(内訳)>
データの取得方法については、上記の前回エントリーをご覧ください。
なお、実施環境については、以下の通りです。
・macOS Sierra ver10.12.3
・R version:3.3.3
・RStudio:1.0.136
・R version:3.3.3
・RStudio:1.0.136
分析手順のご紹介
冒頭のデータ読み込み部分は前回エントリーと同じです。
# データの読み込み
fudousan.dat <- read.csv("fudousan.csv",header = TRUE, stringsAsFactors = F,fileEncoding = "cp932")
# 読み込んだデータ内容の確認
View(fudousan.dat)
fudousan.dat <- read.csv("fudousan.csv",header = TRUE, stringsAsFactors = F,fileEncoding = "cp932")
# 読み込んだデータ内容の確認
View(fudousan.dat)
head(fudousan.dat)でも確認できますが、個人的にはこちらの方が好きです。
# カラム名の変更
fudousan2.dat <- fudousan.dat %>%
dplyr::rename(year = 集計年,pref_code = 都道府県コード, pref_name = 都道府県名, usage_code = 利用目的種別コード, usage = 利用目的種別名, deal_count = 取引件数.件., deal_field = 取引面積.u.)
# 2015年データの抽出:直近の状況を知りたいので、下記のようにしましたが、抽出したい年数を変えたい場合は「2015」部分を書き換えてください。
# ちなみに、dplyr関数でよく使う「%>%」は、Unixのshellでいう「パイプ」と同じ役割を果たします。RStudio上では「Ctrl+Shift+m」で入力できるので是非覚えましょう。
# 「!=」は「not equal」の意味です。「filter」以降の3条件は「AND」条件として処理されます。
fudousan2015.dat <- fudousan2.dat %>%
dplyr::filter(year == 2015,pref_name != "すべての都道府県", usage != "すべての利用目的")
# エリア x 利用用途 で 取引件数 を抽出:[ ,c(3,5,6)]の( )内は列番号を示しています。
fudousan3.dat <- fudousan2015.dat[,c(3,5,6)]
# 参考までに「縦持ち」データを「横持ち」データに変換してみます。
fudousan4.dat <- fudousan3.dat %>%
tidyr::spread(usage,deal_count)
fudousan2.dat <- fudousan.dat %>%
dplyr::rename(year = 集計年,pref_code = 都道府県コード, pref_name = 都道府県名, usage_code = 利用目的種別コード, usage = 利用目的種別名, deal_count = 取引件数.件., deal_field = 取引面積.u.)
# 2015年データの抽出:直近の状況を知りたいので、下記のようにしましたが、抽出したい年数を変えたい場合は「2015」部分を書き換えてください。
# ちなみに、dplyr関数でよく使う「%>%」は、Unixのshellでいう「パイプ」と同じ役割を果たします。RStudio上では「Ctrl+Shift+m」で入力できるので是非覚えましょう。
# 「!=」は「not equal」の意味です。「filter」以降の3条件は「AND」条件として処理されます。
fudousan2015.dat <- fudousan2.dat %>%
dplyr::filter(year == 2015,pref_name != "すべての都道府県", usage != "すべての利用目的")
# エリア x 利用用途 で 取引件数 を抽出:[ ,c(3,5,6)]の( )内は列番号を示しています。
fudousan3.dat <- fudousan2015.dat[,c(3,5,6)]
# 参考までに「縦持ち」データを「横持ち」データに変換してみます。
fudousan4.dat <- fudousan3.dat %>%
tidyr::spread(usage,deal_count)
うーん、まぁ、これぐらいの情報量ならセーフかもしれませんが、ちょっと見づらいですねぇ。
# heatmap作成
p <- ggplot(fudousan3.dat,aes(as.factor(usage),as.factor(pref_name))) +
geom_tile(aes(fill=deal_count)) +
scale_fill_gradient(low="white",high="red") +
theme_bw(base_family = "HiraKakuProN-W3")
# 上記のままだとX軸のラベルが潰れるので、微修正を追加。
p + labs(x = "",y = "") + scale_x_discrete(expand = c(0, 0)) + scale_y_discrete(expand = c(0, 0)) + theme(axis.ticks = element_blank(), axis.text.x = element_text(size = 10, angle = 330, hjust = 0, colour = "grey50"))
p <- ggplot(fudousan3.dat,aes(as.factor(usage),as.factor(pref_name))) +
geom_tile(aes(fill=deal_count)) +
scale_fill_gradient(low="white",high="red") +
theme_bw(base_family = "HiraKakuProN-W3")
# 上記のままだとX軸のラベルが潰れるので、微修正を追加。
p + labs(x = "",y = "") + scale_x_discrete(expand = c(0, 0)) + scale_y_discrete(expand = c(0, 0)) + theme(axis.ticks = element_blank(), axis.text.x = element_text(size = 10, angle = 330, hjust = 0, colour = "grey50"))
<2015年:都道府県別の大規模土地取引件数(内訳)>
前回エントリーでも言及しましたが、「北海道」における「資産保有・転売等目的」の取引件数は多いようですね(「大規模」になる土地の広さも影響していると思いますが)。
また、「静岡県」の「病院等その他の利用目的」が多いのも特徴的ですね。
このような感じで、わずか数行のコードでヒートマップが出力出来ちゃいました。
ggplot2の記法がやや取っつきにくいですが、一度コードを書いてしまえば後は転用できるのがRのいいところ。ご興味ありましたら、是非お試しください。
(参考サイト)
ヒートマップで行列を可視化する! -ggplot2を用いたmicroarray発現量の可視化をしよう!
http://tomoshige-n.hatenablog.com/entry/2014/08/15/235510
R関連エントリー
RESASデータを「IBM Data Scientist Workbench」でゴニョゴニョしてみた。
http://sapporomkt.blogspot.jp/2017/05/resasibm-data-scientist-workbench.html
ggplot2でクロス集計的に複数グラフをプロットする方法
http://sapporomkt.blogspot.jp/2016/11/ggplot2.html
R開発環境が無料で簡単導入!「Data Scientist Workbench」を使ってみた。
http://sapporomkt.blogspot.jp/2016/10/rdata-scientist-workbench.html
(Bluemix)知ってた?dashDBってTwitter分析にもツカエルのさ(+ちょっとだけコンサドーレ調べ)
http://sapporomkt.blogspot.jp/2016/07/bluemixdashdbtwitter.html
RMeCabで形容詞の形態素解析をやってみた。
http://sapporomkt.blogspot.jp/2016/07/rmecab.html
【R言語】今年は、leafletでマップをグリグリしたい。
http://sapporomkt.blogspot.jp/2016/01/rleaflet.html
(R言語)当ブログアクセス者の興味関心事をコレポン(コレスポンデンス)した。
http://sapporomkt.blogspot.jp/2015/12/r.html