[R-sig-Geo] nb2listw() in spdep fails, also errorsarlm() has problems
Roger Bivand
Roger.Bivand at nhh.no
Mon Nov 12 13:15:24 CET 2007
On Mon, 12 Nov 2007, Alun Pope wrote:
> Further to my post below, the function nb2listw() works if the mode is
> coerced to "integer" rather than "numeric" (two places).
>
No, glist should be numeric or double, not integer - those are the only
two mode()<- calls in nb2listw().
>
>
> However the line
>
>
>
> can.sim <- as.logical(NA)
>
>
>
> in errorsarlm() fails with the error message
>
>
>
> Error in UseMethod("as.logical") : no applicable method for
> "as.logical".
>
Almost certainly your system is broken, with a fresh version of R and a
stale version of the methods package somewhere in a library on .libPaths()
Roger
>
>
> It seems that as.logical(NA) is the culprit here, but I do not
> understand how to fix this one. I would be grateful for a quick fix.
> Thanks a lot.
>
>
>
> Alun
>
>
>
> ________________________________
>
> From: r-sig-geo-bounces at stat.math.ethz.ch
> [mailto:r-sig-geo-bounces at stat.math.ethz.ch] On Behalf Of Alun Pope
> Sent: Monday, 12 November 2007 5:18 PM
> To: r-sig-geo at stat.math.ethz.ch
> Subject: [R-sig-Geo] nb2listw() in spdep fails
>
>
>
> Running the latest version of spdep ("spdep, version 0.4-9, 2007-11-01")
> I find that code that previously worked no longer does after updating R
> to the latest release (2.6.0).
>
>
>
> The following example illustrates:
>
>> dataex
>
> long lat
>
> 1 151.1550 -33.88602
>
> 2 151.1922 -33.89780
>
> 3 151.1733 -33.91631
>
> 4 151.2042 -33.92947
>
> 5 151.1854 -33.87928
>
> 6 151.2355 -33.92529
>
> 7 151.1768 -33.91153
>
> 8 151.2352 -33.94703
>
> 9 151.2561 -33.93978
>
> 10 151.2316 -33.95854
>
>> ngh.listex <- knearneigh(cbind(dataex$long,dataex$lat), k=2, longlat
> = TRUE)
>
>> ngh.listex
>
> $nn
>
> [,1] [,2]
>
> [1,] 5 7
>
> [2,] 7 5
>
> [3,] 7 2
>
> [4,] 6 3
>
> [5,] 2 1
>
> [6,] 8 9
>
> [7,] 3 2
>
> [8,] 10 9
>
> [9,] 8 6
>
> [10,] 8 9
>
>
>
> $np
>
> [1] 10
>
>
>
> $k
>
> [1] 2
>
>
>
> $dimension
>
> [1] 2
>
>
>
> $x
>
> [,1] [,2]
>
> [1,] 151.1550 -33.88602
>
> [2,] 151.1922 -33.89780
>
> [3,] 151.1733 -33.91631
>
> [4,] 151.2042 -33.92947
>
> [5,] 151.1854 -33.87928
>
> [6,] 151.2355 -33.92529
>
> [7,] 151.1768 -33.91153
>
> [8,] 151.2352 -33.94703
>
> [9,] 151.2561 -33.93978
>
> [10,] 151.2316 -33.95854
>
>
>
> attr(,"class")
>
> [1] "knn"
>
> attr(,"call")
>
> knearneigh(x = cbind(dataex$long, dataex$lat), k = 2, longlat = TRUE)
>
>> nb.listex <- knn2nb(ngh.listex,sym=TRUE)
>
>> nghwts.listex <- nb2listw(nb.listex,style="U")
>
> Error in UseMethod("as.double") : no applicable method for "as.double"
>
>
>
>
>
> The function nb2listw() in spdep contains statements of the form
>
>
>
> mode(x) <- "numeric"
>
>
>
> which I assume is what is causing that function to fail with the error
> message above.
>
>
>
>
>
> I think this because it seems (to me) that this is caused by the change
> to the behaviour of as.numeric() in the latest R release, when applied
> to vectors of mode "integer". Here is an example which illustrates
> behaviour that appears odd to me:
>
>
>
>> x1
>
> [1] 1 2 3 4 4 4 4
>
>> mode(x1)
>
> [1] "numeric"
>
>> as.numeric(x1)
>
> Error in UseMethod("as.double") : no applicable method for "as.double"
>
>> is.numeric(x1)
>
> [1] TRUE
>
>
>
> I have posted separately to the R-help mailing list.
>
>
>
> I don't know if this ought to be a bug report, sorry.
>
>
>
> Alun
>
>
>
>
>
>
>
> Dr Alun Pope
>
>
>
> Research Manager
>
> Rismark International
>
>
>
> For more on Equity Finance Mortgages*:
>
> See www.efm.info <http://www.efm.info/>
>
>
>
>
>
>
>
> Level 13 | 50 Margaret Street
>
> Sydney | NSW 2000 | Australia
>
> T +61 (0)2 8243 0656
>
> F +61 (0)2 9290 3703
>
> M +61 (0)412 115 028
>
> E alun.pope at rismark.com.au
>
> W www.rismark.com.au
>
>
>
> *Best New Product of the Year in the 2007 Your Mortgage Magazine
> Mortgage of the Year Competition.
>
>
>
> This email is strictly confidential. If you are not the intended
> recipient you must not disclose or use the information contained in it.
> If you have received this email in error please notify us immediately by
> return email and delete the document. Failure to comply with this
> request could invoke severe legal penalties.
>
>
>
>
>
>
--
Roger Bivand
Economic Geography Section, Department of Economics, Norwegian School of
Economics and Business Administration, 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