顧客ロイヤルティの"位置"を感じられるという体験をさせたい

#徒然
・"顧客ロイヤルティ"を位置で感じる、という体験、感覚
・店長とか、エリアマネージャーとかはジオグラフィック情報に対する感受性が高い
・where。うちの店はどこのだれ？
・where × NPS、をシステムで語りたい
・つまり、Location　×　Emotion
・現場より階級クラスのユーザーのアクセス頻度を高めたい
・というか、毎日何かしら触る習慣をつけたい

#つまり
・回答データ、またはシステムにインポートした郵便番号データ
↓
・緯度と経度に変換
↓
・プロット
↓
・自社、自店のお客さんの"Location x Emotion"がミエル

※もっと、個々の推奨度毎で色がかわっていたり、　→できた
※エリア平均として色が変わったりさせたい　

#参考
https://kazutan.github.io/JapanR2015/leaflet_d.html

#①データ読み込み
```
#適当にデータを生成したものを加工して使ってみる
#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=~カテゴリ)　           )
```  

こんな感じになる
![image.png](https://qiita-image-store.s3.amazonaws.com/0/215874/3d4d5af3-8432-f3ac-c7c1-90bab1f902d6.png)

![image.png](https://qiita-image-store.s3.amazonaws.com/0/215874/c172866a-9e4a-b2ad-0fa0-355af5448760.png)

![image.png](https://qiita-image-store.s3.amazonaws.com/0/215874/ece7e686-ce95-754b-7dee-82baa318aac2.png)


↑こんな感じ
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")
```

こんな感じになる

![image.png](https://qiita-image-store.s3.amazonaws.com/0/215874/28b8a2a9-8de6-82b5-8f9d-cda0b33811c8.png)

![image.png](https://qiita-image-store.s3.amazonaws.com/0/215874/d1f9d77c-fe70-6964-3f1f-b20c97f19387.png)

![image.png](https://qiita-image-store.s3.amazonaws.com/0/215874/6eb0bf48-09ff-3bc7-3500-0632be820ada.png)

![image.png](https://qiita-image-store.s3.amazonaws.com/0/215874/2cd0e7a0-c642-b0b5-b9a2-1f5134a78ed3.png)


↑マウトを併せると、情報がポップアップ
http://rpubs.com/Motoki0214/333330







# いま、ＩＰアドレスが取られてるので、すぐにでもいけそうじゃね？？？