在R中,保存shapefile

时间:2016-04-08 22:48:25

标签: r shapefile

我想在操作后保存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

我不知道如何获得驱动器。一些解决方案?

1 个答案:

答案 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