データ属性のマージ
merge() は既定では、両方のデータセットで同じ名前の列を基準にマージします。今回のケースでは、ID 列の名前が一方では tract、もう一方では TRACTCE なので、そのままでは適切ではありません。これに対応するために、merge() には任意引数 by.x と by.y があり、それぞれ2つのデータセットでマージの基準にする列名を指定できます。
merge() は新しい Spatial___DataFrame オブジェクトを返します。結果を確認するには、tmap でプロットしてみましょう。
さっそくマージしてみます。
この演習はコースの一部です
R で地理空間データを可視化する
演習の手順
merge()を使い、最初の引数に空間オブジェクトnyc_tracts、2つ目にデータフレームnyc_incomeを渡します。さらにby.x = "TRACTCE"とby.y = "tract"を指定し、結果をnyc_tracts_mergeに保存します。summary()をnyc_tracts_mergeに対して実行し、オブジェクトがSpatialPolygonsDataFrameであること、そしてデータにnyc_incomeのestimate列が含まれていることを確認します。tm_shape()を使い、tm_fill()レイヤーを追加して、nyc_tracts_mergeのコロプレス地図を作成し、色をestimateにマッピングします。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
library(sp)
library(tmap)
# Merge nyc_tracts and nyc_income: nyc_tracts_merge
# Call summary() on nyc_tracts_merge
# Choropleth with col mapped to estimate