Learn R Programming

tmaptools (version 1.2)

calc_densities: Calculate densities

Description

Transpose quantitative variables to densitiy variables, which are often needed for choroplets. For example, the colors of a population density map should correspond population density counts rather than absolute population numbers.

Usage

calc_densities(shp, var, target = "metric", orig = NA, to = NA, total.area = NA, suffix = NA, drop = TRUE)

Arguments

shp
a shape object, i.e., a SpatialPolygons(DataFrame), or a sf object that can be coerced as such.
var
name(s) of a qualtity variable name contained in the shp data
target
the target unit, see approx_areas. Density values are calculated in var/target^2.
orig
original units, i.e. by which the coordinates are defined, see approx_areas.
to
multiplier used as follows: orig * to = target. See approx_areas.
total.area
total area size of shp in number of target units (defined by unit), approx_areas.
suffix
character that is appended to the variable names. The resulting names are used as column names of the returned data.frame. By default, _sq_, where target corresponds to the target unit, e.g. _sq_km
drop
boolean that determines whether an one-column data-frame should be returned as a vector

Value

Vector or data.frame (depending on whether length(var)==1 with density values. This can be appended directly to the shape file with append_data with fixed.order=TRUE.

Examples

Run this code
if (require(tmap)) {
    data(NLD_muni)

    NLD_muni_pop_per_km2 <- calc_densities(NLD_muni, target = "km", var = c("pop_men", "pop_women"))
    NLD_muni <- append_data(NLD_muni, NLD_muni_pop_per_km2, fixed=TRUE)

    tm_shape(NLD_muni) +
    	tm_polygons(c("pop_men_sq_km", "pop_women_sq_km"),
            title=expression("Population per " * km^2), style="quantile") +
    tm_facets(free.scales = FALSE) +
    tm_layout(panel.show = TRUE, panel.labels=c("Men", "Women"))
}

Run the code above in your browser using DataLab