Thankyou so much Vijay and Barry. Yes I have found that using these techniques I can add nb relationships nicely.
And they card() nicely too. And when I nb2listw they transform well and when I test them can.be.simmed(x) they pass this test also. When I draw maps with them Like Roger Bivand showed in his examples for poly2nb – the maps draw just perfectly. However when I use them in the spml or spgm regressions in package splm they fail with an error message usually about indexes being out of bounds. Running this code …. summary(spgm(PC1MI ~ PC1Rx * log(mrjmon), + data=MIdf9dfF2, listw=MIdf9sflww, + lag=TRUE, moments="fullweights", method="g2sls", + model="random", spatial.error=TRUE)) Generates this error: Error in x[, ii] : subscript out of bounds I feel that I must be missing something here but am not able to put my finger on what it is??? Thanks so much again, Stuart. From: Dr Stuart Reece <asre...@bigpond.net.au> Sent: Thursday, 8 August, 2019 2:01 PM To: 'Barry Rowlingson' <b.rowling...@gmail.com>; 'Stuart Reece' <stuart.re...@bigpond.com> Cc: 'Vijay Lulla' <vijaylu...@gmail.com>; 'R-sig-geo Mailing List' <r-sig-geo@r-project.org> Subject: RE: [R-sig-Geo] Adding a Few Neighbour Relationships to a nb List Importance: High Thanks Barry. That is so perfect and so super helpful!!! And if I want to add three areas to an area – say I want to add 6,7 and 8 to the area 10?? Please may I have the syntax for that to avoid the integer error?? Is this also the root of the error about not being the correct index?? Many thanks again, Stuart. From: Barry Rowlingson [mailto:b.rowling...@gmail.com] Sent: Thursday, 8 August 2019 8:51 AM To: Stuart Reece Cc: Vijay Lulla; R-sig-geo Mailing List; Stuart Reece Subject: Re: [R-sig-Geo] Adding a Few Neighbour Relationships to a nb List I recently answered a similar question on Stack Overflow where someone needed to add detached polygons to their connected network by connecting them to their nearest neighbour: https://stackoverflow.com/questions/57269254/how-to-impute-missing-neighbours-of-a-spatial-weight-matrix-queen-contiguity/57378930?noredirect=1#comment101246065_57378930 in short, you can treat a `nb` object like a list of vectors: nb[[i]] is a vector of indexes of objects connected to object `i` BUT you have to make sure you store integers: Here's a `nb` object from that question which in summary has this manyneighbours for each region: > card(nb) [1] 2 3 4 3 2 0 0 lets set the 6th feature to be a neighbour of the first: > nb[[6]] = 1 then uh-oh... > card(nb) Error in card(nb) : INTEGER() can only be applied to a 'integer', not a 'double' same again only `as.integer`: > nb[[6]] = as.integer(1) and its happy: > card(nb) [1] 2 3 4 3 2 1 0 if you want to set the nighbours of 6 to several features: > nb[[6]] = as.integer(c(1,2,3)) > card(nb) [1] 2 3 4 3 2 3 0 Barry [[alternative HTML version deleted]] _______________________________________________ R-sig-Geo mailing list R-sig-Geo@r-project.org https://stat.ethz.ch/mailman/listinfo/r-sig-geo