R: rearrange data in SpatialPointsDataFrame or...

stack {sp} | R Documentation

## rearrange data in SpatialPointsDataFrame or SpatialGridDataFrame for plotting with spplot (levelplot/xyplot wrapper)

### Description

rearrange SpatialPointsDataFrame for plotting with spplot or levelplot

### Usage

    spmap.to.lev(data, zcol = 1:n, n = 2, names.attr)
    ## S3 method for class 'SpatialPointsDataFrame'
    stack(x, select, ...)
    ## S3 method for class 'SpatialGridDataFrame'
    stack(x, select, ...)

### Arguments

`data` | object of class (or extending) SpatialPointsDataFrame or SpatialGridDataFrame
`zcol` | z-coordinate column name(s), or a column number (range) (after removing the spatial coordinate columns: 1 refers to the first non-coordinate column, etc. )
`names.attr` | names of the set of z-columns (these names will appear in the plot); if omitted, column names of `zcol`
`n` | number of columns to be stacked
`x` | same as `data`
`select` | same as `zcol`
`...` | ignored

### Value

`spmap.to.lev` returns a data frame with the following elements:

`x` | x-coordinate for each row
`y` | y-coordinate for each row
`z` | column vector with each of the elements in columns `zcol` of `data` stacked
`name` | factor; name of each of the stacked `z` columns

`stack` is an S3 method: it return a data.frame with a column `values` that has the stacked coordinates and attributes, and a column `ind` that indicates the variable stacked; it also replicates the coordinates.

### See Also

spplot, levelplot in package `lattice`, and stack

### Examples

    library(lattice)
    data(meuse.grid) # data frame
    coordinates(meuse.grid) = c("x", "y") # promotes to SpatialPointsDataFrame
    meuse.grid[["idist"]] = 1 - meuse.grid[["dist"]] # add variable
    # the following is made much easier by spplot:
    levelplot(z~x+y|name, spmap.to.lev(meuse.grid, z=c("dist","idist"), names.attr =
    	c("distance", "inverse of distance")), aspect = "iso")
    levelplot(values~x+y|ind, as.data.frame(stack(meuse.grid)),aspect = "iso")
    gridded(meuse.grid) = TRUE
    levelplot(z~x+y|name, spmap.to.lev(meuse.grid, z=c("dist","idist"), names.attr =
    	c("distance", "inverse of distance")), aspect = "iso")
    levelplot(values~x+y|ind, as.data.frame(stack(meuse.grid)), asp = "iso")

[Package sp version 1.4-5 Index]