【发布时间】:2015-04-24 16:40:43
【问题描述】:
我有这个简单的data.frame
lat<-c(1,2,3,10,11,12,20,21,22,23)
lon<-c(5,6,7,30,31,32,50,51,52,53)
data=data.frame(lat,lon)
想法是根据距离找到空间聚类
首先,我绘制地图(经度,纬度):
plot(data$lon,data$lat)
很明显,我有三个基于点位置之间距离的聚类。
为此,我在 R 中尝试过这段代码:
d= as.matrix(dist(cbind(data$lon,data$lat))) #Creat distance matrix
d=ifelse(d<5,d,0) #keep only distance < 5
d=as.dist(d)
hc<-hclust(d) # hierarchical clustering
plot(hc)
data$clust <- cutree(hc,k=3) # cut the dendrogram to generate 3 clusters
这给出了:
现在我尝试绘制相同的点,但使用集群中的颜色
plot(data$x,data$y, col=c("red","blue","green")[data$clust],pch=19)
这里是结果
这不是我想要的。
其实我也想找这样的剧情
感谢您的帮助。
【问题讨论】:
-
我不太清楚你为什么要以这种方式聚集距离......如果你使用
hc <- hclust(dist(data)); clust <- cutree(hc, 3),它会按预期工作。
标签: r geospatial spatial hierarchical-clustering