在 R 中,保存一个 shapefile
in R, save a 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
我不知道如何获取驱动器。一些解决方案?
问题是您的 map2
对象不再是 shapefile,因此您无法将其另存为 shapefile。 fortify
命令将形状文件 (map@data
) 的数据槽转换为 data.frame 对象以用于映射目的。 ggplot2
无法处理 class sp 的对象(空间多边形,即形状文件)。我假设您想保存此 'reduced' 或 'subsetted' 数据。您需要做的是:
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
我想在操作后保存一个 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
我不知道如何获取驱动器。一些解决方案?
问题是您的 map2
对象不再是 shapefile,因此您无法将其另存为 shapefile。 fortify
命令将形状文件 (map@data
) 的数据槽转换为 data.frame 对象以用于映射目的。 ggplot2
无法处理 class sp 的对象(空间多边形,即形状文件)。我假设您想保存此 'reduced' 或 'subsetted' 数据。您需要做的是:
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