pacman::p_load(tidyverse, tmap, sf, sfdep)In-Class Exercise 5
Local Colocation
Getting Started
Importing Data
studyArea <- st_read(dsn = "data",
                     layer="study_area") %>%
  st_transform(crs = 3829)Reading layer `study_area' from data source 
  `/Users/shambhavigoenka/Desktop/School/Geo/IS415-GAA/in-class_ex/in-class_ex05/data' 
  using driver `ESRI Shapefile'
Simple feature collection with 7 features and 7 fields
Geometry type: POLYGON
Dimension:     XY
Bounding box:  xmin: 121.4836 ymin: 25.00776 xmax: 121.592 ymax: 25.09288
Geodetic CRS:  TWD97stores <- st_read(dsn = "data",
                     layer="stores") %>%
  st_transform(crs = 3829)Reading layer `stores' from data source 
  `/Users/shambhavigoenka/Desktop/School/Geo/IS415-GAA/in-class_ex/in-class_ex05/data' 
  using driver `ESRI Shapefile'
Simple feature collection with 1409 features and 4 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 121.4902 ymin: 25.01257 xmax: 121.5874 ymax: 25.08557
Geodetic CRS:  TWD97Visualising the sf layers
tmap_mode("view")
tm_shape(studyArea) + 
  #remember to draw in order
  tm_polygons() + 
  tm_shape(stores) + 
  tm_dots(col = "Name",
          size = 0.01,
          border.col = "black",
          border.lwd = 0.5)tm_view(set.zoom.limits = c(12,16))$tm_layout
$tm_layout$set.zoom.limits
[1] 12 16
$tm_layout$style
[1] NA
attr(,"class")
[1] "tm"Local Colocation Quotients (LCLQ)
nb <- include_self(
  st_knn(st_geometry(stores),6))
wt <- st_kernel_weights(nb,
                        stores,
                        "gaussian",
                        adaptive = TRUE)
FamilyMart <- stores %>%
  filter(Name == "Family Mart")
A <- FamilyMart$Name #target
SevenEleven <- stores %>% 
  filter(Name == "7-Eleven")
B <- SevenEleven$Name #neighbour
LCLQ <- local_colocation(A, B, nb, wt, 49)
#50 simulations
LCLQ_stores <- cbind(stores, LCLQ) #append not join tmap_mode("view")
tm_shape(studyArea) + 
  tm_polygons() + 
  tm_shape(LCLQ_stores) + 
  tm_dots(col = "X7.Eleven",
          size = 0.01,
          border.col = "black",
          border.lwd = 0.5)tm_view(set.zoom.limits = c(12,16))$tm_layout
$tm_layout$set.zoom.limits
[1] 12 16
$tm_layout$style
[1] NA
attr(,"class")
[1] "tm"