Tomemos una pequeña muestra de los datos de la vivienda a título ilustrativo:
> set.seed(123)
> h = house[sample(25357,100),]
A continuación, puede utilizar la función deldir
para construir una triangulación de Delaunay:
> library(deldir) # install from CRAN if not got already
> hd = deldir(data.frame(coordinates(h)))
Un elemento de esto se parece a esto:
> head(hd$delsgs)
x1 y1 x2 y2 ind1 ind2
1 507012.1 212861.7 484643.3 197553.9 6 74
2 505668.7 212737.6 507012.1 212861.7 18 6
3 506340.4 212874.5 507012.1 212861.7 51 6
4 506340.4 212874.5 505668.7 212737.6 51 18
5 503051.5 210910.0 484643.3 197553.9 35 74
6 503051.5 210910.0 507012.1 212861.7 35 6
y cada fila de ind1
y ind2
representa una línea en la triangulación que une los dos puntos. Así, el punto 6 está conectado al punto 74, el punto 18 al punto 6 y así sucesivamente. Se trata de una lista de adyacencia .
Se podría pasar a construir la matriz de pesos espaciales a partir de esas columnas, pero hay una función en spdep
que lo haga por ti:
> nbl = tri2nb(coordinates(h))
> nbl
Neighbour list object:
Number of regions: 100
Number of nonzero links: 576
Percentage nonzero weights: 5.76
Average number of links: 5.76
> plot(nbl,coordinates(h))
ahora es un objeto estándar que puede manipularse en las diversas estructuras de peso espacial que spdep
funciones de uso.
Tenga en cuenta que ésta es sólo una de las muchas formas de hacer una matriz de pesos espaciales para datos puntuales, incluyendo N-Nearest neighbour, todos los vecinos dentro del umbral de distancia, etc. La mayoría de estos métodos se aplican en el programa spdep
paquete.