Как мне создать пространственную матрицу весов, основанную на смежности стран (ладья или королева)?
Я знаю о функции poly2nb
, а затем nb2listw
, однако при использовании объекта ggplot
ведьма должна иметь информацию о многоугольникене работает для перечисленных стран.
require(maps)
require(viridis)
library(ggplot2)
library(spdep)
library(RColorBrewer)
library(wesanderson)
some.eu.countries <- c(
"Portugal", "Spain", "France", "Switzerland", "Germany",
"Austria", "Belgium", "UK", "Netherlands",
"Denmark", "Poland", "Italy",
"Croatia", "Slovenia", "Hungary", "Slovakia",
"Czech republic", "Ukraine", "Ukraine", "Finland", "Belarus", "Norway",
"Sweden", "Finland", "Estonia", "Latvia", "Lithuania" ,"Moldova", "Romania",
"Bulgaria", "Macedonia", "Greece"
)
# Retrievethe map data
map_data("europe")
some.eu.maps <- map_data("world", region = some.eu.countries)
g = ggplot(some.eu.maps, aes(x = long, y = lat, group = group)) +
geom_polygon(fill="lightgray", colour = "white")
print(g)
И затем создание весовой матрицы:
# Spatial weights based on the border (Rook and Queen)
Border_Weight <- poly2nb(g)
summary(Border_Weight)
S<-nb2listw(Border_Weight)
Чего мне не хватает?