Learn R Programming

tmaptools (version 1.0)

aggregate_map: Aggregate map

Description

Aggregate spatial polygons, spatial lines or raster objects. For spatial polygons and lines, the units will be merged with the by variable. For rasters, the fact parameter determined how many rasters cells are aggregated both horizontally and vertically. Per data variable, an aggregation formula can be specified, by default mean for numeric and modal for categorical varaibles.

Usage

aggregate_map(shp, by = NULL, fact = NULL, agg.fun = NULL, weights = NULL, na.rm = FALSE, ...)

Arguments

by
variable by which polygons or lines are merged. Does not apply to raster objects.
fact
number that specifies how many cells in both horizontal and vertical direction are merged. Only applied to raster objects.
agg.fun
aggregation function(s). One of the following formats:
  1. One function (name) by which all variables are aggregated.
  2. A vector of two function names called "num" and "cat" that determine the functions by which numeric respectively categorical variables are aggregated. For instance c(num="mean", cat="modal"), which calculates the mean and mode for numeric respectively categorical variables.
  3. A list where per variable the (names of the) function(s) are provided. The list names should correspond to the variable names.

These predefined functions can be used: "mean", "modal", "first", and "last".

weights
name of a numeric variable in shp. The values serve as weights for the aggregation function. If provided, these values are passed on as second argument. Works with aggregation functions "mean" and "modal". Use "AREA" for polygon area sizes.
na.rm
passed on to the aggregation function(s) agg.fun.
...
other arguments passed on to the aggregation function(s) agg.fun.

Value

A shape object, in the same format as shp

Examples

Run this code
## Not run: 
# if (require(tmap)) {
#     data(land)
# 
#     # original map
#     qtm(land, raster="cover_cls")
# 
#     # map decreased by factor 4 for each dimension
#     land4 <- aggregate_map(land, fact=4, agg.fun="modal")
#     qtm(land4, raster="cover_cls")
# 
#     # map decreased by factor 8, where the variable trees is
#     # aggregated with mean, min, and max
#     land_trees <- aggregate_map(land, fact=8,
#         agg.fun=list(trees="mean", trees="min", trees="max"))
# 
#     tm_shape(land_trees) +
#     	tm_raster(c("trees.1", "trees.2", "trees.3"), title="Trees (%)") +
#     	tm_facets(free.scales=FALSE) +
#     	tm_layout(panel.labels = c("mean", "min", "max"))
# 
#     data(NLD_muni, NLD_prov)
# 
#     # aggregate Dutch municipalities to provinces
#     NLD_prov2 <- aggregate_map(NLD_muni, by="province",
#         agg.fun = list(population="sum", origin_native="mean", origin_west="mean",
#     				   origin_non_west="mean", name="modal"), weights = "population")
# 
#     # see original provinces data
#     NLD_prov@data[, c("name", "population", "origin_native", "origin_west", "origin_non_west")]
# 
#     # see aggregates data (the last column corresponds to the most populated municipalities)
#     NLD_prov2@data
# 
#     # largest municipalities in area per province
#     aggregate_map(NLD_muni, by="province",
#                   agg.fun = list(name="modal"), weights = "AREA")@data
#     }
# ## End(Not run)

Run the code above in your browser using DataLab