I have SpatialPointsDataFrame type data, with a few hundred observations scattered around the globe, and am trying to identify points that are both (a) neighbours, and (b) of the same group. In other words, within a group, there may be geographically non-contiguous clusters, and geographically contiguous clusters may contain one or more groups.
Here is a simple example to illustrate what I mean:
g <- SpatialPointsDataFrame(coords=expand.grid(x = 1:10, y = 1:10), dataÚta.frame(group=rep(LETTERS[10:1], each)))
g <- g[sample(1:100, size0),]
plot(g, axes=T, pch=as.character(g$group))
I want to identify clusters of the *same* letter, where clusters are defined by *contiguity*.
I realise the following will get me a neighbours list:
dnearneigh(g, d1=0, d2=sqrt(2))
However, it's not clear to me how I might move from knowing about the properties of an individual point, to knowing about the identities of clusters containing variable numbers of points. And I have the added compication of wanting to parse out only neighbours that belong to the same group. Any assistance would be very much appreciated.