徒然
・"顧客ロイヤルティ"を位置で感じる、という体験、感覚
・店長とか、エリアマネージャーとかはジオグラフィック情報に対する感受性が高い
・where。うちの店はどこのだれ?
・where × NPS、をシステムで語りたい
・つまり、Location × Emotion
・現場より階級クラスのユーザーのアクセス頻度を高めたい
・というか、毎日何かしら触る習慣をつけたい
つまり
・回答データ、またはシステムにインポートした郵便番号データ
↓
・緯度と経度に変換
↓
・プロット
↓
・自社、自店のお客さんの"Location x Emotion"がミエル
※もっと、個々の推奨度毎で色がかわっていたり、 →できた
※エリア平均として色が変わったりさせたい
参考
①データ読み込み
#適当にデータを生成したものを加工して使ってみる
#https://hogehoge.tk/personal/
> test <- read.csv("personal_infomation.csv",header = TRUE)
> head(test)
連番 score カテゴリ カテゴリ.score 郵便番号 経度 緯度 sex age
1 1 0 批判者 批判者:0 574-0025 135.6305 34.70593 女性 31歳
2 2 7 中立者 中立者:7 581-0011 135.6106 34.62701 女性 37歳
3 3 7 中立者 中立者:7 675-0032 134.8242 34.75972 男性 33歳
4 4 0 批判者 批判者:0 669-3167 134.9594 35.11034 男性 38歳
5 5 3 批判者 批判者:3 647-0001 135.9787 33.73390 男性 41歳
6 6 4 批判者 批判者:4 527-0016 136.1907 35.10003 女性 27歳
②データ内の郵便番号を緯度、経度に変換
#↓を使えばできると思うが、いまはよくわからんから、ローカルでやった
#https://www.tree-maps.com/zip-code-to-coordinate/
#https://www.geocoding.jp/
③ライブラリをインストール
install.packages("leaflet")
library(leaflet)
④これでプロット用データに変換(されるらしい)
knitr::kable(test)
こんなのが出てくる
| 連番| score|カテゴリ |カテゴリ.score |郵便番号 | 経度| 緯度|sex |age |
|----:|-----:|:--------|:--------------|:--------|--------:|--------:|:----|:----|
| 1| 0|批判者 |批判者:0 |574-0025 | 135.6305| 34.70593|女性 |31歳 |
| 2| 7|中立者 |中立者:7 |581-0011 | 135.6106| 34.62701|女性 |37歳 |
| 3| 7|中立者 |中立者:7 |675-0032 | 134.8242| 34.75972|男性 |33歳 |
| 4| 0|批判者 |批判者:0 |669-3167 | 134.9594| 35.11034|男性 |38歳 |
| 5| 3|批判者 |批判者:3 |647-0001 | 135.9787| 33.73390|男性 |41歳 |
⑤まっさらの地図を用意する
map <- leaflet(test) %>%
addTiles()
⑥プロットデータの緯度経度を指定して、マップにプロット
#カラーパレットの配色と何に充てるかを指定
palfac <- colorFactor(palette=c("green","yellow","red"), domain=test$カテゴリ)
#マップにプロット
map %>%
addCircles(lng=~経度,
lat=~緯度,
radius=200, #円の半径
color=~palfac(カテゴリ),
weight=5, #円の太さ
label=paste(test$カテゴリ.score,test$sex,test$age,sep = ","), #labelで、マウスをあわせたら出てくる値を定義できる
) %>%
# 凡例を出す
addLegend(position='topright', pal=palfac, values=~カテゴリ) )
↑こんな感じ
http://rpubs.com/Motoki0214/333331
http://rpubs.com/Motoki0214/333332
⑦別のパターンでやってみる。まず、まっさらの地図を用意
map <- leaflet(test) %>%
addTiles()
⑧addMarkersのパターン場合。クラスター化できるオプションがある。また、ミニマップもつけられる
map %>%
addMarkers(lng=~経度,
lat=~緯度,
# radius=200, #円の半径
# color="#00F",
# weight=5, #円の太さ
label=paste(test$カテゴリ.score,test$sex,test$age,sep = ","), #labelで、マウスをあわせたら出てくる値を定義できる
clusterOptions = markerClusterOptions() ,
)%>%
addMiniMap(position="bottomright")
こんな感じになる
↑マウトを併せると、情報がポップアップ
http://rpubs.com/Motoki0214/333330