[R-sig-Geo] extracting simple list of adjacent neighbours
Roger Bivand
Roger.Bivand at nhh.no
Tue Sep 6 21:41:52 CEST 2011
On Tue, 6 Sep 2011, Moritz Lennert wrote:
> Hello,
>
> I have a very simple problem, which I know will have a simple solution, but I
> just can't get my head wrapped around it.
>
> I have a shapefile with regions, including an attribut containing a regional
> id.
>
> I would like to extract a simple neighbourhood file, with neighbourhood
> defined by simple adjacency with symmetry of relationship in both directions.
>
> Ideally, I would like to get something like this:
>
> id_region_1 id_neighbour_1
> id_region_1 id_neighbour_2
> id_region_1 id_neighbour_3
> id_region_2 id_neighbour_1
> id_region_2 id_neighbour_2
> id_region_3 id_neighbour_1
> etc
>
> What I've done so far:
>
> originalmap<-readShapePoly("/path/to/shapefile.shp")
> nb<-poly2nb(originalmap, row.names=originalmap$idcolumn)
Roughly:
lw <- nb2listw(nb, style="B")
sn <- listw2sn(lw)
then the first two columns of the "spatial.neighbour" object sn (used in
the S-PLUS SpatialStats module) are what you need. They can also be
exported for use in Matlab.
Hope this helps,
Roger
>
> With nb[] I can see that the list of lists of neighbours and the list of
> id's.
>
> Here's where I'm stuck. How do I get a list as above with the row names
> defined in the poly2nb call ?
> Or as an intermediate solution: how do I replace the line id's in the lists
> with the regional id's in the list of id's to at least get something like
> this:
>
> id_region_1 id_neighbour_1 id_neighbour_2 id_neighbour_3
> id_region_2 id_neighbour_1 id_neighbour_2
> id_region_3 id_neighbour_1 etc..
>
> ?
>
> I imagine that this is a very simple operation, but I just can't seem to find
> the way. Any pointers to doc is welcome.
>
> Moritz
>
> _______________________________________________
> R-sig-Geo mailing list
> R-sig-Geo at r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-sig-geo
>
--
Roger Bivand
Department of Economics, NHH Norwegian School of Economics,
Helleveien 30, N-5045 Bergen, Norway.
voice: +47 55 95 93 55; fax +47 55 95 95 43
e-mail: Roger.Bivand at nhh.no
More information about the R-sig-Geo
mailing list