sdev | R Documentation |
Compute the deviation of each territorial unit as regards to its geographical neighborhood. Neighborhood is defined either by contiguity order, by a distance value or by a personal matrix (travel time...)
sdev(x, var1, var2, type = "rel", xid, order, dist, mat)
x |
a sf object including var1 and var2. |
var1 |
name of the numerator variable in x. |
var2 |
name of the denominator variable in x. |
type |
type of deviation; "rel" for relative deviation, "abs" for absolute deviation (see Details). |
xid |
identifier field in x (to be used for importing a personal distance matrix). Default to the first column of x. (optional) |
order |
contiguity order. |
dist |
distance threshold defining the contiguity. The cartesian distance between units centroids is used by default; use mat to apply different metrics. |
mat |
a distance matrix (road distance, travel time...) between x units. Row and column names must fit xid identifiers. (optional) |
The relative spatial deviation is the ratio between var1/var2 and
var1/var2 in the specified neighborhood. Values greater than 100 indicate
that the unit ratio is greater than the ratio in its neighborhood. Values
lower than 100 indicate that the unit ratio is lower than the ratio in its
neighborhood.
The absolute spatial deviation is the amount of numerator that could be
moved to obtain the same ratio in all units of its neighborhood.
A vector is returned.
# Load data
library(sf)
com <- st_read(system.file("metroparis.gpkg", package = "MTA"), layer = "com", quiet = TRUE)
ept <- st_read(system.file("metroparis.gpkg", package = "MTA"), layer = "ept", quiet = TRUE)
cardist <- read.table(system.file("cardist.txt", package = "MTA"), check.names = FALSE)
cardist <- as.matrix(cardist)
# compute absolute spatial deviation in a neighborhood defined by a contiguity
# order of 1.
com$sdevabs <- sdev(x = com, var1 = "INC", var2 = "TH", order = 1, type = "abs")
#compute relative spatial deviation in a neighborhood defined within a distance
# of 5km between communes' centroids
com$sdevrel <- sdev(x = com, var1 = "INC", var2 = "TH", type = "rel", dist = 5000)
# compute absolute spatial deviation in a neighborhood defined within a road
# travel time of 10 minutes by car
com$scardevabs <- sdev(x = com, var1 = "INC", var2 = "TH", type = "abs", dist = 10, mat = cardist)
# compute relative spatial deviation in a neighborhood defined within a road
# travel time of 10 minutes by car
com$scardevrel <- sdev(x = com, var1 = "INC", var2 = "TH", type = "rel", dist = 10, mat = cardist)
if(require(mapsf)){
# relative deviation map
# set breaks
bks <- c(min(com$scardevrel), 75, 100, 125, 150, max(com$scardevrel))
# plot a choropleth map of the relative spatial deviation
mf_map(x = com, var = "scardevrel", type = "choro", leg_pos = "topleft",
leg_title = "Relative Deviation\n(100 = spatial average)",
breaks = bks, border = NA,
pal = c("#91BFDB", "#E0F3F8", "#FEE090", "#FC8D59", "#D73027"))
# add EPT boundaries
mf_map(x = ept, col = NA, add = TRUE)
# layout
mf_layout(title = "Spatial Deviation (neighborhood : 10 minutes by car)",
credits = paste0("Sources: GEOFLA® 2015 v2.1, Apur, impots.gouv.fr",
"\nMTA", packageVersion("MTA")),
arrow = FALSE)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.