st_nb_apply | R Documentation |
Sometimes one may want to create custom lag variables or create some other neighborhood level metric that may not be defined yet. This st_nb_apply()
enables you to apply a function to each observation's (xi) neighbors (xij).
st_nb_apply(x, nb, wt, .f, suffix = "dbl", ...)
x |
A vector that will be used for neighbor xij values. |
nb |
A neighbor list object as created by |
wt |
A weights list as created by |
.f |
A function definition. There are three default objects that can be used inside of the function definition:
If any of these three function arguments are omitted from |
suffix |
The |
... |
arguments to pass to |
The below example calculates the spatial lag using st_nb_apply()
and st_lag()
to illustrate how we can apply functions to neighbors.
Currently questioning the use case. find_xj()
is now exported and may negate the need for this function.
a vector or list of with same length as x
.
if (requireNamespace("dplyr", quietly = TRUE)) {
library(magrittr)
guerry %>%
dplyr::transmute(
nb = st_contiguity(geometry),
wt = st_weights(nb),
lag_apply = st_nb_apply(
crime_pers, nb, wt,
.f = function(.xij, .wt, ...) sum(.xij *.wt)
),
lag = st_lag(crime_pers, nb, wt)
)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.