【发布时间】:2015-04-16 03:38:09
【问题描述】:
我希望通过属性对 SpatialPolygonsDataFrame 进行子集化,但我想让它返回一个空的 SpatialPolygonsDataFrame。
如果我们将 SpatialPolygonsDataFrame 类型的对象视为 data.frames,如 here 所讨论的,我们应该能够获取并使用空对象。
我很感兴趣,因为我想将其合并到一个函数中,该函数可能会尝试通过一个属性进行子集化,该属性基本上不会选择任何特征。
owd <- getwd()
setwd(system.file("shapes", package = "maptools"))
library(maptools)
nc90 <- readShapeSpatial("co37_d90")
setwd(owd)
nc90@data[nc90@data$AREA>0.15,] # returns data.frame
bigctys <- nc90[nc90@data$AREA>0.15,] # SpatialPolygonsDataFrame
nc90@data[nc90@data$AREA>0.25,] # returns empty data.frame
bigestctys <- nc90[nc90@data$AREA>0.25,] # ERROR
有没有办法让它工作?如果没有,有没有办法初始化一个空的 SpatialPolygonsDataFrame 对象?我想在这样的对象上执行的未来操作涉及在现有地图上过度绘制,所以我希望无论如何都要生成图像,即使是空白的。
【问题讨论】: