Tengo un SpatialPolygonsDataFrame
objeto. ¿Hay alguna forma de utilizar apply
en este objeto en lugar de utilizar un bucle for para iterar características en este objeto?
Respuesta
¿Demasiados anuncios?Probablemente quieras iterar sobre los polígonos.
Como ejemplo, comience con esta cuadrícula tomada de la página del manual (pero reducido en tamaño):
library(sp)
grd <- GridTopology(c(1,1), c(1,1), c(3,3))
polys <- as.SpatialPolygons.GridTopology(grd)
centroids <- getSpPPolygonsLabptSlots(polys)
x <- centroids[,1]
y <- centroids[,2]
z <- 1.4 + 0.1*x + 0.2*y + 0.002*x*x
data <- SpatialPolygonsDataFrame(polys,
data=data.frame(x=x, y=y, z=z, row.names=getSpPPolygonsIDSlots(polys)))
Aquí sapply
se utiliza para crear un vector de los identificadores de polígono e imprimirlo:
(ids <- sapply(data@polygons, function(p) p@ID))