# ---- expand_spflow_neighborhood -----------------------------------------------
dg_Matrix <- function(x, d) as(diag(x, d, d),"Matrix")
expect_equivalent({
W <- Matrix::Diagonal(2,2)
spflow:::expand_spflow_neighborhood(W, W, model = "model_9")
},
{
lapply(list("Wd" = 2, "Wo" = 2, "Ww" = 4), "dg_Matrix", 4)
},
info = "neighborhood expansion (model_9 + cartesian + square)")
expect_equivalent({
OW <- Matrix::Diagonal(2,2)
DW <- Matrix::Diagonal(3,3)
spflow:::expand_spflow_neighborhood(OW, DW, model = "model_9")
},
{
lapply(list("Wd" = 3, "Wo" = 2, "Ww" = 6), "dg_Matrix", 6)
},
info = "neighborhood expansion (model_9 + cartesian + rectangular)")
expect_equivalent({
Y_s <- matrix(c(1,1,1,0),2,2)
W <- dg_Matrix(c(.5,2))
spflow:::expand_spflow_neighborhood(W, W, model = "model_9",
M_indicator = Y_s)
},
{
dw <- c(.5,2)[c(1,2,1)]
ow <- c(.5,2)[c(1,1,2)]
lapply(list("Wd" = dw, "Wo" = ow, "Ww" = dw * ow), "dg_Matrix", 3)
},
info = "neighborhood expansion (model_9 + non-cartesian + square)")
expect_equivalent({
OW <- dg_Matrix(2,2)
DW <- dg_Matrix(3,3)
Y_s <- matrix(c(1,0,1,0,0,1),3,2)
spflow:::expand_spflow_neighborhood(OW, DW, model = "model_9",M_indicator = Y_s)
},
{
lapply(list("Wd" = 3, "Wo" = 2, "Ww" = 6), "dg_Matrix", 3)
},
info = "neighborhood expansion (model_9 + non-cartesian + rectangular)")
# ---- normalize_neighborhood -------------------------------------------------
expect_equal({
a <- matrix(1:25,5,5)
diag(a) <- 0
as(a / rowSums(a),"dgCMatrix")
}, {
spflow:::normalize_neighborhood(matrix(1:25,5,5),by_row = TRUE)
}
, check.attributes = FALSE
, info = "Row standardized neighborhood.")
expect_equal({
a <- matrix(1:25,5,5)
diag(a) <- 0
as(a / abs(eigen(a)$values[1]),"dgCMatrix")
}, {
spflow:::normalize_neighborhood(matrix(1:25,5,5),by_row = FALSE)
}
, check.attributes = FALSE
, info = "Row standardized neighborhood.")
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.