[R-sig-Geo] Adding a Few Neighbour Relationships to a nb List

Stuart Reece @tu@rt@reece @end|ng |rom b|gpond@com
Wed Aug 7 16:43:51 CEST 2019


Dear R-Sig-Geo list,

 

I was wondering if it might be possible please to request assistance with
adding some nb relationships to a .nb.gal list composed either by GeoDa or
poly2nb in R????

 

The shapefile at this URL
<https://www.samhsa.gov/data/report/2014-2016-nsduh-substate-region-shapefil
e>  divides USA into 395 substate regions.  For health and demographical
reasons it is important to include both Hawaii and Alaska in the
spatiotemporal analysis so I want to introduce these into the Southeast
coast of California and the Pacific northwest respectively.

 

This is just as Giovanni Millo added in spatial relationships for Sicily
across the Strait of Messina for splm on page 7 of the splm pdf.

 

I found edit.nb in spdep and operated it just as described in the
instructions and here
<https://github.com/r-spatial/spdep/blob/master/man/edit.nb.Rd> .  It
crashed RStudio many times but ran well in R3.6.1.  However even though I
assigned it to a new object it did not save well.  Although when I plotted
the dxxx file as the difference between the old and modified files it
plotted the changes beautifully in red and black respectively when plotted
by themselves it introduced many long distance extraneous relationships.  To
get the edited nb list file out of R 3.6.1 and into RStudio I saved it as an
RDS file.  However when opened in RStudio it was grossly erroneous and
included extraneous links from Hawaii to Boston and New York.  When I opened
the file in RStudio it again introduced these extraneous links.

 

Saving it as a further new object in R 3.6.1 did not remedy these
difficulties.

 

The other problem I have is that the spdep poly2nb function excludes
Richmond, an island off the southern tip of Long Island near New York as it
is an island.  Also one of the areas - Region 10 in Washington DC - is also
excluded for reasons of which I am unsure.

 

I found some code here to just patch single areas
<https://stat.ethz.ch/pipermail/r-sig-geo/2006-June/001073.html>  like this
but when I run it, it throws an integer error 

"  INTEGER() can only be applied to a 'integer', not a 'double'  

 

No combination of bracketing around subscripts helps or works at all.  The
link mentioned has these statements in it

 

nb[[ij[1]]] <- sort(unique(c(nb[[ij[1]]], ij[2])))
nb[[ij[2]]] <- sort(unique(c(nb[[ij[2]]], ij[1])))

 

which makes me think that I should insert a vector "  c(i,j) "  where
indicated.  Even using "c(as.integer(i),as.integer(j)) " 

or " as.integer(c(I,j)) "   doesn't work and still gives rise to the same
error.

 

I am sure I am not the only one to have encountered such difficulties but I
have really tried everything I can think of.

 

The other thing I would really like is some clear instructions as to the
true underlying structure of the nb list.  If I could clearly understand
this then I could just go into the affected lines of the list of lists and
edit them directly.

 

However I am quite unable to find any clear description of its structure on
line.

 

Similarly I cannot find the source code for drop.links online to try to
translate this code into add.links directly, as was also suggested.

 

But such a function would I think be enormously helpful and of invaluable
assistance for final editing.

 

Thankyou ever so much in advance for your kind and gracious assistance. 

 

Yours sincerely,

 

Stuart Reece.


	[[alternative HTML version deleted]]



More information about the R-sig-Geo mailing list