nb2lines {spdep} | R Documentation

## Use arc-type shapefiles for import and export of weights

### Description

Use arc-type shapefiles for import and export of weights, storing spatial entity coordinates in the arcs, and the entity indices in the data frame.

### Usage

    nb2lines(nb, wts, coords)
    listw2lines(listw, coords)
    df2sn(df, i="i", i_ID="i_ID", j="j", wt="wt")

### Arguments

`nb` | a neighbour object of class `nb`
`wts` | list of general weights corresponding to neighbours
`coords` | matrix of region point coordinates
`listw` | a `listw` object of spatial weights
`df` | a data frame read from a shapefile, derived from the output of `nb2lines`
`i` | character name of column in df with from entity index
`i_ID` | character name of column in df with from entity region ID
`j` | character name of column in df with to entity index
`wt` | character name of column in df with weights

### Details

The maptools package function `write.linelistShape` is used to transport out the list of lines made by `nb2lines` or `listw2lines`, which is a simple wrapper function. The neighbour and weights objects may be retrieved by converting the specified columns of the attribute data of the Map object into a spatial.neighbour object, which is then converted into a weights list object.

### Value

`nb2lines` and `listw2lines` return a list of two objects, `ll` is a list of lines, and `df` is a data frame with the from and to indices of the neighbour links and their weights. `df2sn` converts the data retrieved from reading the data from `df` back into a `spatial.neighbour` object.

### Note

Original idea due to Gidske Leknes Andersen, Department of Biology, University of Bergen, Norway

### Author(s)

Roger Bivand Roger.Bivand@nhh.no

### See Also

`sn2listw`, `write.linelistShape`

### Examples

    data(columbus)
    res <- listw2lines(nb2listw(col.gal.nb), coords)
    str(res$df)
    fn <- paste(tempdir(), "nbshape", sep="/")
    write.linelistShape(res$ll, res$df, file=fn)
    inMap <- read.shape(fn)
    str(inMap$att.data)
    diffnb(sn2listw(df2sn(inMap$att.data))$neighbours, col.gal.nb)
    identical(coords, unique(t(sapply(Map2lines(inMap), function(x) x[1,]))))

[Package spdep version 0.3-25 Index]