neig {ade4} | R Documentation

## Neighbourhood Graphs

### Description

`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)

### Usage

    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)

### Arguments

`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

### Author(s)

Daniel Chessel chessel@biomserv.univ-lyon1.fr

### References

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.

### Examples

    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))

[Package Contents]