Thanks Roger and Mathieu. Instead of: [[1]] [1] 2 10 11 15 17 I now have: 1 2 1 10 1 11 1 15 1 17
For the last piece of this analysis, I would like to generate a list of neighbor distances to complete my table. nbd <- nbdist(nb, SpatialPoints) nbd [[1]] [1] 84.95881 90.35486 75.92760 22.20360 81.00617 But ideally, I would like to have 1 2 84.95881 1 10 90.35486 1 11 75.92760 1 15 22.20360 1 17 81.00617 I can't use nb2listw (and then merge), because this is an object of class "nbdist". I also cannot use the Mathieu's melt method, because I nb2mat also requires an object of class "nb". Suggestions? -----Original Message----- From: Roger Bivand [mailto:roger.biv...@nhh.no] Sent: Tuesday, March 22, 2011 1:30 AM To: Mathieu Rajerison Cc: kmringel...@ucdavis.edu; r-sig-geo@r-project.org Subject: Re: [R-sig-Geo] spdep: show neighbors from "dnearneigh" On Tue, 22 Mar 2011, Mathieu Rajerison wrote: > Hi, > > Maybe you should convert your nb object into a matrix using nb2mat then use > reshape package? > > library(reshape) > > df<-as.data.frame(nb.mat) > > df$id<-row.names(df) > > mdata<-melt(df,id="id") > > then subset your data for which mdata$value > 0 No, the question was how to convert to a two-column from-to representation, and a direct route is: example(read.gal) # to get an nb object us48.q us48.q[1:2] res <- listw2sn(nb2listw(us48.q))[,1:2] res[1:9,] str(res) If you need a matrix, do as.matrix(res). Roger > > > 2011/3/21 Kevin Ringelman <kmringel...@ucdavis.edu> > >> Thanks for your help Roger. I have a couple more questions. >> >> print.default(nb) shows me what I'm looking for: for each region, I see the >> regions that are within my distance band. For example: >> >> [[1]] >> [1] 2 10 11 15 17 18 19 32 40 554 >> >> [[2]] >> [1] 1 15 17 21 33 34 426 511 554 557 >> >> I want to make this information into a table, with the focal regions as >> column 1, and the region IDs of it's neighbors as column 2 (similar to >> neighbor analysis output in ArcGIS). Continuing the example from above: >> 1 2 >> 1 10 >> 1 11 >> 1 15 >> 1 17 >> (etc.) >> >> Even after I nuke the nb class >> U <- unclass(nb) >> I still can't access or manipulate the data...it doesn't appear as an >> attribute >> attribute(U) >> >> Any suggestions? >> >> >> >> >> >> -----Original Message----- >> From: Roger Bivand [mailto:roger.biv...@nhh.no] >> Sent: Saturday, March 05, 2011 10:03 AM >> To: Kevin Ringelman >> Cc: r-sig-geo@r-project.org >> Subject: Re: [R-sig-Geo] spdep: show neighbors from "dnearneigh" >> >> On Fri, 4 Mar 2011, Kevin Ringelman wrote: >> >>> I am having trouble viewing the list of neighbors ("regions IDs") after >>> created a nb object using the "dnearneigh" function in spdep. I only >> seem >>> to get a summary (with # regions, # non-zero links, etc.). This nb >> object >>> also doesn't take well to being converted to another type of object, or >>> exported from R. How I view the list of neighbors? >>> >> >> In S and R, objects with a class attribute, such as "nb" objects, may have >> display methods specific to the class. If you just say: >> >>> nb >> >> then this is expanded internally to print(nb), and since nb is an object >> of class "nb", the print.nb() method is chosen. If you want the default >> print method, call it as print.default(nb). Conversion of objects of one >> class to another class may be done by coercion where coercion methods are >> provided. No such methods are available for nb objects. There are >> functions to do things like this, but not methods. For example, to make an >> nb object into a row-standardised matrix, you might do: >> >>> Wmat <- nb2mat(nb, style="W") >> >> but you should avoid this if your number of observations is large. To make >> a sparse matrix, several steps are required: >> >>> lw <- nb2listw(nb, style="W") >>> spWmat <- as(as_dgRMatrix_listw(lw), "CsparseMatrix") >> >> using the nb2listw() and (ugly name) as_dgRMatrix_listw() functions, and >> coercion from one representation to another using new-style classes >> defined in the Matrix package. >> >>> >>> >>> Some additional background: I'm identifying all neighboring bird nests >>> within 100m of each nest. For this particular analysis, I ultimately >> want >>> to calculate the average vegetation height of neighboring nests to >> compare >>> with the focal nest. This will involve generating a list of neighbors, >> and >>> merging that list with my other data. >>> >> >> Note that an nb object is a list - to nuke the class, do: >> >>> class(nb) <- NULL >> >> which lets you call print.default(), but to get at the attribute you want, >> just do: >> >>> attr(nb, "region.id") >> >> to call print.default on the character vector it contains. >> >> Hope this clarifies, >> >> Roger >> >>> >>> >>> Thanks, >>> >>> Kevin >>> >>> >>> [[alternative HTML version deleted]] >>> >>> _______________________________________________ >>> R-sig-Geo mailing list >>> R-sig-Geo@r-project.org >>> https://stat.ethz.ch/mailman/listinfo/r-sig-geo >>> >> >> -- >> 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.biv...@nhh.no >> >> _______________________________________________ >> R-sig-Geo mailing list >> R-sig-Geo@r-project.org >> https://stat.ethz.ch/mailman/listinfo/r-sig-geo >> > > [[alternative HTML version deleted]] > > _______________________________________________ > R-sig-Geo mailing list > R-sig-Geo@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-sig-geo > -- 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.biv...@nhh.no _______________________________________________ R-sig-Geo mailing list R-sig-Geo@r-project.org https://stat.ethz.ch/mailman/listinfo/r-sig-geo