[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