[R-sig-Geo] extracting simple list of adjacent neighbours
Roger Bivand
Roger.Bivand at nhh.no
Tue Sep 13 18:39:41 CEST 2011
On Tue, 13 Sep 2011, Moritz Lennert wrote:
> 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.
example(columbus)
nb <- poly2nb(columbus, row.names=as.character(columbus$NEIGNO))
lw <- nb2listw(nb, style="B")
sn <- listw2sn(lw)
head(sn)
sn1 <- cbind(attr(sn, "region.id")[sn$from], attr(sn,
"region.id")[sn$to])
head(sn1)
using the region.id attribute.
Hope this helps,
Roger
>
> 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
>
--
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