neig                  package:ade4                  R Documentation

_N_e_i_g_h_b_o_u_r_h_o_o_d _G_r_a_p_h_s

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

     'neig' creates objects of class 'neig' with : 
      a list of edges
      a binary square matrix
      a list of vectors of neighbours
      an integer (linear and circular graphs)
      a data frame of polygons (area)

     scores.neig returns the eigenvectors of neighbouring,
      orthonormalized scores (null average, unit variance 1/n and null
     covariances) of maximal autocorrelation.

     nb2neig returns an object of class 'neig' using an object of class
     'nb' in the library 'spdep'

     neig2nb returns an object of class 'nb' using an object of class
     'neig'

     neig2mat returns the incidence matrix between edges (1 = neighbour
     ; 0 = no neighbour)

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

     neig(list = NULL, mat01 = NULL, edges = NULL,
         n.line = NULL, n.circle = NULL, area = NULL)

     scores.neig  (obj) 
     print.neig  (x, ...) 
     summary.neig  (object, ...)
     nb2neig (nb)
     neig2nb (neig)
     neig2mat (neig)

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

    list: a list which each component gives the number of neighbours

   mat01: a symmetric square matrix of 0-1 values

   edges: a matrix of 2 columns with integer values giving a list of
          edges

  n.line: the number of points for a linear plot

n.circle: the number of points for a circular plot

    area: a data frame containing a polygon set (see area.plot)

      nb: an object of class 'nb'

neig, x, obj, object: an object of class 'neig'

     ...: further arguments passed to or from other methods

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

     Daniel Chessel chessel@biomserv.univ-lyon1.fr

_R_e_f_e_r_e_n_c_e_s:

     Thioulouse, J., D. Chessel, and S. Champely. 1995.  Multivariate
     analysis of spatial patterns: a unified approach to local and
     global structures. _Environmental and Ecological Statistics_, *2*,
     1-14.

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

     data(mafragh)
     if (require(tripack, quietly=TRUE)) {
         par(mfrow = c(2,1))
         provi <- neighbours(tri.mesh(mafragh$xy))
         provi.neig <- neig(list = provi)
         
         s.label(mafragh$xy, neig = provi.neig, inc = FALSE, 
             addax = FALSE, clab = 0, cnei = 2)
         dist <- apply(provi.neig, 1, function(x) 
             sqrt(sum((mafragh$xy[x[1],] - mafragh$xy[x[2],])^2)))
         #hist(dist, nclass = 50)
         mafragh.neig <- neig(edges = provi.neig[dist<50,])
         s.label(mafragh$xy, neig = mafragh.neig, inc = FALSE, 
             addax = FALSE, clab = 0, cnei = 2)
         par(mfrow = c(1,1))
         
         data(irishdata)
         irish.neig <- neig(area = irishdata$area)
           summary(irish.neig)
           print(irish.neig)
         s.label(irishdata$xy, neig = irish.neig, cneig = 3,
             area = irishdata$area, clab = 0.8, inc = FALSE)
         
         irish.scores <- scores.neig(irish.neig)
         par(mfrow = c(2,3))
         for (i in 1:6) s.value(irishdata$xy, irish.scores[,i],
             inc = FALSE, grid = FALSE, addax = FALSE,
             neig = irish.neig,
             csi = 2, cleg = 0, sub = paste("Eigenvector n",i), csub = 2)
         par(mfrow = c(1,1))
         
         a.neig <- neig(n.circle = 16)
         a.scores <- scores.neig(a.neig)
         xy <- cbind.data.frame(cos((1:16) * pi / 8), sin((1:16) * pi / 8))
         par(mfrow = c(4,4))
         for (i in 1:15) s.value(xy, a.scores[,i], neig = a.neig, 
             csi = 3, cleg = 0)
         par(mfrow = c(1,1))
         
         a.neig <- neig(n.line = 28)
         a.scores <- scores.neig(a.neig)
         par(mfrow = c(7,4))
         par(mar = c(1.1,2.1,0.1,0.1))
         for (i in 1:27) barplot(a.scores[,i], col = grey(0.8))
     }
     par(mfrow = c(1,1))

     if (require(maptools, quiet = TRUE) & require(spdep, quiet = TRUE)) {
         data(columbus)
         par(mfrow = c(2,1))
         par(mar = c(0.1,0.1,0.1,0.1))
         plot(col.gal.nb, coords)
         s.label(data.frame(coords), neig = neig(list = col.gal.nb),
             inc = FALSE, clab = 0.6, cneig = 1)
         par(mfrow = c(1,1))
         
         data(mafragh)
         maf.rel <- relativeneigh(as.matrix(mafragh$xy))
         maf.rel <- graph2nb(maf.rel)
         s.label(mafragh$xy, neig = neig(list = maf.rel), inc = FALSE,
             clab = 0, addax = FALSE, cne = 1, cpo = 2)
         
         par(mfrow = c(2,2))
         w <- matrix(runif(100), 50, 2)
         x.gab <- gabrielneigh(w)
         x.gab <- graph2nb(x.gab)
         s.label(data.frame(w), neig = neig(list = x.gab), inc = FALSE,
             clab = 0, addax = FALSE, cne = 1, cpo = 2, sub = "relative")
         x.rel <- relativeneigh(w)
         x.rel <- graph2nb(x.rel)
         s.label(data.frame(w), neig = neig(list = x.rel), inc = FALSE,
             clab = 0, addax = FALSE, cne = 1, cpo = 2, sub = "Gabriel")
         k1 <- knn2nb(knearneigh(w))
         s.label(data.frame(w), neig = neig(list = k1), inc = FALSE,
             clab = 0, addax = FALSE, cne = 1, cpo = 2, sub = "k nearest neighbours")
         
         all.linked <- max(unlist(nbdists(k1, w)))
         z <- dnearneigh(w, 0, all.linked)
         s.label(data.frame(w), neig = neig(list = z), inc = FALSE,
             clab = 0, addax = FALSE, cne = 1, cpo = 2, 
             sub = "Neighbourhood contiguity by distance")
     }
     par(mfrow = c(1,1))

