[R-sig-Geo] extracting simple list of adjacent neighbours
Moritz Lennert
mlennert at club.worldonline.be
Tue Sep 13 17:12:26 CEST 2011
On 06/09/11 21:41, Roger Bivand wrote:
> 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.
>
This does give me the right format, but I don't get the ids in
originalmap$idcolumn but rather the internal ids of the polygons.
I've tried using the IDvar parameter in readShapePoly
(IDvar="idcolumn"), but the result in sn is still the same.
How do I get the sn result to contain the ids from the column I would
like to use ?
Moritz
More information about the R-sig-Geo
mailing list