我想在操作后保存shapefile。
首先,我读了我的对象
map<-readOGR("C:/MAPS","33SEE250GC_SIR")
在此之后,我将shapefile子集化:
test <- fortify(map, region="CD_GEOCODI")
test<- subset(test, -43.41<long & long < -43.1 & - 23.05<lat & lat< -22.79)
我得到了这个子集的相应ID
ids<- unique(test$id)
map2<- map[map$CD_GEOCODI %in% ids ,]
当我绘制map2时,它没问题。但是,当我尝试保存这个shapefile时,有些错误
writeOGR(map2, dsn = "C:/MAPS" , layer = "nameofmynewmap")
> Error in match(driver, drvs$name) :
argument "driver" is missing, with no default
我不知道如何获得驱动器。一些解决方案?
答案 0 :(得分:4)
问题是您的map2
对象不再是shapefile,因此您无法将其保存为shapefile。 fortify
命令将形状文件(map@data
)的数据槽转换为data.frame对象,以用于映射目的。 ggplot2
无法处理类sp的对象(空间多边形,即形状文件)。我假设你想保存这个&#39;减少&#39;或者&#39;子集化&#39;数据。您需要做的是:
library(rgdal)
library(dplyr)
map<-readOGR("C:/MAPS","33SEE250GC_SIR")
map<-subset(world, LON>-43.41 | LON < -43.1 & LAT>- 23.05 | LAT< -22.79)
writeOGR(map, ".", "filename", driver="ESRI Shapefile") #also you were missing the driver argument