nb2blocknb               package:spdep               R Documentation

_B_l_o_c_k _u_p _n_e_i_g_h_b_o_u_r _l_i_s_t _f_o_r _l_o_c_a_t_i_o_n-_l_e_s_s _o_b_s_e_r_v_a_t_i_o_n_s

_D_e_s_c_r_i_p_t_i_o_n:

     The function blocks up a neighbour list for know spatial locations
     to create a new neighbour list for multiple location-less
     observations know to belong to the spatial locations, using the
     identification tags of the locations as the key.

_U_s_a_g_e:

     nb2blocknb(nb, ID, row.names = NULL)

_A_r_g_u_m_e_n_t_s:

      nb: an object of class 'nb' with a list of integer vectors
          containing neighbour region number ids

      ID: identification tags of the locations for the location-less
          observations; 'sort(unique(as.character(ID)))' must be
          identical to 'sort(as.character(attr(nb, "region.id")))';
          same length as 'row.names' if provided.

row.names: character vector of observation ids to be added to the
          neighbours list as attribute 'region.id', default 'seq(1,
          nrow(x))'; same length as 'ID' if provided.

_D_e_t_a_i_l_s:

     Assume that there is a list of unique locations, then a neighbour
     list can build for that, to create an input neighbour list. This
     needs to be "unfolded", so that observations belonging to each
     unique location are observation neighbours, and observations
     belonging to the location neighbours of the unique location in
     question are also observation neighbours, finally removing the
     observation itself (because it should not be its own neighbour).
     This scenario also arises when say only post codes are available,
     and some post codes contain multiple observations, where all that
     is known is that they belong to a specific post code, not where
     they are located within it (given that  the post code locations
     are known).

_V_a_l_u_e:

     The function returns an object of class 'nb' with a list of
     integer vectors containing neighbour observation number ids.

_A_u_t_h_o_r(_s):

     Roger Bivand Roger.Bivand@nhh.no

_S_e_e _A_l_s_o:

     'knn2nb', 'dnearneigh', 'cell2nb', 'tri2nb', 'poly2nb'

_E_x_a_m_p_l_e_s:

     data(boston)
     summary(as.vector(table(boston.c$TOWN)))
     townaggr <- aggregate(boston.utm, list(town=boston.c$TOWN), mean)
     block.rel <- graph2nb(relativeneigh(as.matrix(townaggr[,2:3])), as.character(townaggr[,1]), sym=TRUE)
     block.rel
     print(is.symmetric.nb(block.rel))
     plot(block.rel, as.matrix(townaggr[,2:3]))
     points(boston.utm, pch=18, col="lightgreen")
     block.nb <- nb2blocknb(block.rel, as.character(boston.c$TOWN))
     block.nb
     print(is.symmetric.nb(block.nb))
     plot(block.nb, boston.utm)
     points(boston.utm, pch=18, col="lightgreen")
     moran.test(boston.c$CMEDV, nb2listw(boston.soi))
     moran.test(boston.c$CMEDV, nb2listw(block.nb))

