Saltar al contenido

Cálculo de rezagos espaciales por año en R

Solución:

Creo que la forma más fácil de lograr esto es usar bucles y crear el lag.listw () para su variable de conteo para cada año.

¿Algo como esto?

spatlag <- data.frame(id=NULL, time=NULL, lag=NULL)
for (y in sort(unique(data$time))){
  print(y)

Luego, dentro del bucle for, subestablece tanto los puntos como los polígonos, y ejecuta la superposición. Luego, resume el número de puntos para cada punto de tiempo y los vincula al marco de datos de intervalo de tiempo, un punto de tiempo a la vez.

pointsincell=over(SpatialPolygons([email protected]),SpatialPoints(pts),
              returnList=TRUE)
grid$totalcount<-unlist(lapply(pointsincell,length))
require(spdep)
neigh<-poly2nb(grid) # Create neighbour list
weights<-nb2listw(neigh,style="B",zero.policy=TRUE) # Create weights (binary)
grid$spatial.lag<-lag.listw(weights,grid$totalcount,zero.policy=TRUE) # Add to raster
rbind(spatlag, grid)
}

El código anterior es solo para ejemplificar. Entonces: 1. Cree un marco de datos vacío para almacenar los retrasos 2. Para el bucle para cada punto de tiempo 3. Cree un subconjunto para los puntos donde el tiempo es igual al tiempo para ejecutar el bucle 4. Superponga los puntos en la cuadrícula / polígono 5. Sume el número de puntos en cada superposición de polígono (podría usar dplyr para agregar) 6. Vincular el número sumado de puntos al marco de datos vacío.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *