G空間情報センターにあるネオプランニングラボ株式会社が出している1kmメッシュを使用します。
1kmメッシュ_13_東京都のGeoJSON形式をダウンロードしてください。
ダウンロードが完了したら、Exploratoryを開きインポートしたAirbnbのデータフレームのチャートから地図 - エリアを選択します。
エリアタイプの右上にあるギアアイコンをクリックします。
マップのエクステンションのダイアログが表示されるので、新規追加を選択して、ローカルから追加をクリックします。
先程ダウンロードした、東京都の1kmのメッシュを選択します。
エクステンションに13tokyo1kmが追加されていれば完了です!
エリアタイプに13tokyo1kmを選択します。
キー・プロパティを見ると、code(53394509)という列が必要だということわかります。このコードとはメッシュを識別するためのコードのことであり、経度や緯度をもとに基準地域メッシュコードというものが定められています。
そこで、コードを生成するために便利なjpmeshというパッケージを使用します。
Exploratoryでjpmeshを使うには、パッケージをインストールする必要があります。
プロジェクトメニューから「Rパッケージの管理」を選択します。
パッケージをインストールのCRANからjpmeshと入力してインストールをクリックします。
インストールされたら下記の確認のダイアログが表示されるため、「OK」ボタンをクリックします。
これでjpmeshパッケージをExploratoryにインストールすることができました。
もし異なるプロジェクトでjpmeshパッケージを使用したい場合は、プロジェクトのメニューからRパッケージの管理を開きます。
プロジェクトにjpmeshのパッケージにチェックをつけてOKボタンをクリックすることで、そのプロジェクトでjpmeshパッケージが使用できるようになります。
経度と緯度をもとにメッシュコードを生成していきます。
ステップのメニューから計算を作成を選択します。
メッシュコードを生成するためには、coords_to_meshという関数を使います。
引数は経度と緯度を指定するだけのため、下記になります。
coords_to_mesh(longitude, latitude)
もしExploratoryサーバーでスケジュールしたい場合は、計算式に下記を入力してください。
jpmesh::coords_to_mesh(longitude, latitude)
経度と緯度をもとにメッシュコードを生成することができました。
ちなみに、coords_to_meshでメッシュコードを生成する際にはデフォルトでは1kmのメッシュコードとなっています。
もし、250m単位のメッシュマップを使用したい場合は、下記のようにto_mesh_sizeという引数を追加してメッシュコード生成時のサイズを指定することができます。
coords_to_mesh(long, lat, to_mesh_size = 0.25)
メッシュコードの生成については、こちらのページでも詳しく紹介がされています。
メッシュマップを選択したチャートに戻り、チャートピンをステップ2にドラッグ&ドロップします。
キー列に先程作成したメッシュコードの列を選択します。
メッシュごとに行の数(宿泊施設数)の多さで色分けすることができました。
メッシュにマウスオーバーするとメッシュコードはわかりますが、どの地域なのかがわかりません。
そのため、ラベルにcityを選択し、タイトルとして表示にチェックをします。
メッシュにマウスオーバーした時にどの地域か判別することができました。
見やすくするためにチャートのプロパティを開きスタイルのタイプにダーク(暗め) を選択します。
東京でのAirbnbの宿泊施設がどこに多いのかをメッシュマップを使って可視化することができました。
新宿区とスカイツリーが近い台東区&墨田区に宿泊施設が多いことがわかりました。
もし下記のようなエラーが発生している場合は、jpmeshパッケージがインストールされていない、またはプロジェクトで適用されていない可能性があります。
Error in mutate(., メッシュコード = coords_to_mesh(経度, 緯度), : Problem while computing `メッシュコード = coords_to_mesh(経度, 緯度)`. Caused by error in `coords_to_mesh()`: ! could not find function "coords_to_mesh"
このノートにある「jpmeshのパッケージをインストールする」のセクションを参考にお試しください。
メッシュマップで使用している単位とメッシュコードを生成する時の単位が違うときに、メッシュマップがうまく表示されないことがあります。
例えば、メッシュマップが「250m」の場合は、メッシュコードを生成する時の単位も揃える必要があります。
ちなみに、coords_to_meshでメッシュコードを生成する際にはデフォルトでは1kmのメッシュコードとなっています。
もし、250mで使用したい場合は、下記のようにto_mesh_sizeという引数を追加してサイズを指定することができます。
coords_to_mesh(long, lat, to_mesh_size = 0.25)
メッシュコードの生成については、こちらのページでも詳しく紹介がされています。