./
直下にgisdata
フォルダを作成し、setwd("gisdata")
とディレクトリを指定していますinstall.packages()
でパッケージをインストールし、library()
でパッケージを呼び出すinstall.packages("spdep")
install.packages("sf")
install.packages("spatstat")
install.packages("tidyverse")
install.packages("kokudosuuchi")
library(spdep)
library(sf)
library(spatstat)
library(tidyverse)
library(kokudosuuchi)
以下の方法でパイプ %>% の優先順位を高める
needs::prioritize(magrittr)
神奈川県の市区町村境界データを国土数値情報から入手する
kokudosuuchi::getKSJURL("N03", prefCode = 14) %>%
filter(year==2015) %>% select(zipFileUrl) %>%
pull(1) -> url
tf <- tempfile(fileext = ".zip")
curl::curl_download(url, tf)
unzip(tf, exdir = getwd(), junkpaths = TRUE)
unlink(tf)
rm(tf)
神奈川県の行政境界データを読み込み、更に横浜市を抽出する。その際、同じ行政コードのポリゴンを統合する。
ad <- sf::st_read('N03-15_14_150101.shp')%>%
dplyr::group_by(N03_007) %>%
dplyr::summarise(geometry = st_union(geometry)) %>%
dplyr::ungroup()
ad %>%
filter(N03_007 %in% c(14101:14118)) -> y_ad
横浜市の行政境界を描画する。
y_ad %>%
st_geometry() %>%
plot(border="white", col="grey")
y_ad_cen <- sf::st_centroid(y_ad)
y_ad_coord <- sf::st_coordinates(y_ad_cen)
y_ad.tri.nb <- spdep::tri2nb(y_ad_coord)
y_ad %>%
st_geometry() %>%
plot(border="white", col="grey")
plot(y_ad.tri.nb, y_ad_coord, add=TRUE)
st_centroid assumes attributes are constant over geometries of xst_centroid does not give correct centroids for longitude/latitude data