InClass_Ex05

pacman::p_load(tidyverse,tmap,sf,sfdep)
studyArea <- st_read(dsn = 'data',layer="study_area")%>% st_transform(crs=3829)
Reading layer `study_area' from data source 
  `C:\Quanfang777\IS415-GAA\WeeklyExercise\week5\InClass_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:  TWD97
stores <- st_read(dsn = 'data',layer="stores")%>% st_transform(crs=3829)
Reading layer `stores' from data source 
  `C:\Quanfang777\IS415-GAA\WeeklyExercise\week5\InClass_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:  TWD97

Visualising the sf layers

tmap_mode("view")
tmap mode set to interactive viewing
tm_shape(studyArea)+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))

Local Colocation Quotients (LCLQ)

Preparing nearest neighbours list

nb <- include_self(st_knn(st_geometry(stores),6)
                   )

Computing kernel weights

wt <- st_kernel_weights(nb,stores,"gaussian")
Warning in spdep::knearneigh(pnts, k): knearneigh: identical points found
Warning in spdep::knearneigh(pnts, k): knearneigh: kd_tree not available for
identical points

Preparing the vector list

FamilyMart <- stores %>% filter(Name == "Family Mart")
A <- FamilyMart$Name
SevenEleven <- stores %>% filter(Name=="7-Eleven")
B<- SevenEleven$Name

Computing LCLQ

LCLQ <-local_colocation(A,B,nb,wt,49)

Joining output table

LCLQ_stores <-cbind(stores,LCLQ)

Plotting LCLQ values

tmap_mode("view")
tmap mode set to interactive viewing
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))