R 相邻县的聚类

R 相邻县的聚类,r,R,如何根据一个或多个变量对相似的县进行聚类,形成相邻县的聚类?每个县有一个记录。理想情况下,我希望基于质心lat/long或其他邻接矩阵进行此操作。我已经有了lat/long和邻接矩阵。我找到的最接近的软件包是SpatialEpi,如果我有计数数据的话,它会很棒。我还尝试将Mclust与lat/long作为预测因子,以获得不满意或连续的结果。我也尝试过卡巴,但这似乎不是正确的做法。非常感谢您的建议 如果您获得了相当好的空间数据(即,与maps包或maptools::wrld_Siml中分布的数据不

如何根据一个或多个变量对相似的县进行聚类,形成相邻县的聚类?每个县有一个记录。理想情况下,我希望基于质心lat/long或其他邻接矩阵进行此操作。我已经有了lat/long和邻接矩阵。我找到的最接近的软件包是SpatialEpi,如果我有计数数据的话,它会很棒。我还尝试将Mclust与lat/long作为预测因子,以获得不满意或连续的结果。我也尝试过卡巴,但这似乎不是正确的做法。非常感谢您的建议

如果您获得了相当好的空间数据(即,与maps包或
maptools::wrld_Siml
中分布的数据不同),则可以使用
rgeos::gTouches()
来形成邻接矩阵。(如果您想要一个矩阵来指示彼此之间的非零距离内的县,请改用
rgeos::gWithinDistance()

例如,使用方便函数
raster::getData('GADM',country='USA',level=2)
下载的县级形状文件,并将其存储在名为“
GADM
”的
空间多边形数据框中,下面是我如何获得罗德岛县的邻接矩阵:

library(rgeos)

## Subset out just the counties in Rhode Island
RI <- gadm[gadm$NAME_1 == "Rhode Island",]
## Form their adjacency matrix
m <- gTouches(RI, RI, byid=TRUE)
## Add in counties' names along table edges
rownames(m) <- colnames(m) <- RI$NAME_2

## See that it works
RI
#            Bristol  Kent Newport Providence Washington
# Bristol      FALSE FALSE   FALSE       TRUE      FALSE
# Kent         FALSE FALSE   FALSE       TRUE       TRUE
# Newport      FALSE FALSE   FALSE      FALSE      FALSE
# Providence    TRUE  TRUE   FALSE      FALSE      FALSE
# Washington   FALSE  TRUE   FALSE      FALSE      FALSE

plot(RI, col=blues9[c(1,3,5,7,9)])
title("Rhode Island counties")
库(rgeos)
##只列出罗德岛的几个县
RI