Many thanks! I forgot about the row standardisation. I will subset the nb class and then create the weights matrix.
Nikhil On Thu, Feb 18, 2010 at 8:36 AM, Roger Bivand <roger.biv...@nhh.no> wrote: > On Thu, 18 Feb 2010, Nikhil Kaza wrote: > > Hello, >> >> I am not sure if this is the right forum to ask as this is mostly a sparse >> matrix question, nevertheless here it is. >> >> I am using R - 2.10.1 and spdep 0.4-54 on Windows Vista >> >> I have a large shapefile for which I need to create a neighborhood matrix >> file, I used the following command to create a neighborhood matrix >> >> shp_file <- readShapePoly(file.choose()) >> grid_nb_mat <- as.spam.listw(nb2listw(poly2nb(shp_file, >> row.names=shp_file$CELL_ID))) >> >> Now I would like to subset this matrix based on a subset of the shapefile >> and I have a vector of CELL_IDs. However, I cannot figure out a way to >> assign row and column names to grid_nb_mat, so that I can subset this >> matrix. Could someone point me in the right direction? If it is were a >> simple matrix row.names and colnames would work. >> > > If you had saved the output of poly2nb as an nb object, you could have used > the subset method for that class. You are using default row standardisation > in the nb2listw() step, so only subsetting grid_nb_mat - by using "[" with > keep vectors: > > keep <- which(shp_file$CELL_ID "... to keep") > > kgrid_nb_mat <- grid_nb_mat[keep, keep] > > will not have correct row sums. str(grid_nb_mat) shows no row or column > names stored (probably to save space). If possible start again from > poly2nb() and save the output object. Otherwise: > > example(columbus) > col.listw <- nb2listw(col.gal.nb) > col.sp <- as.spam.listw(col.listw) > str(col.sp) > keep <- c(1:20, 25:40) > kcol.sp <- col.sp[keep, keep] > apply(kcol.sp, 1, sum) > str(kcol.sp) > kcol...@entries <- rep(1, 150) > apply(kcol.sp, 1, sum) > rsum <- apply(kcol.sp, 1, sum) > kkcol.sp <- diag.spam(1/rsum) %*% kcol.sp > apply(kkcol.sp, 1, sum) > > Roger > > >> regards >> Nikhil >> >> _______________________________________________ >> R-sig-Geo mailing list >> R-sig-Geo@stat.math.ethz.ch >> 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 > > [[alternative HTML version deleted]] _______________________________________________ R-sig-Geo mailing list R-sig-Geo@stat.math.ethz.ch https://stat.ethz.ch/mailman/listinfo/r-sig-geo