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.