2016-04-08 7 views
1

操作後シェイプファイルを保存します。はシェイプファイルを保存します

まず、私は私のオブジェクトこの後

map<-readOGR("C:/MAPS","33SEE250GC_SIR") 

を読んで、私は私のシェープファイルのサブセット:

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 ,] 

Iプロットを取得しますmap2、それは大丈夫です。しかし、私はこのシェイプファイルを保存しようとすると、間違っている

writeOGR(map2, dsn = "C:/MAPS" , layer = "nameofmynewmap") 
> Error in match(driver, drvs$name) : 
argument "driver" is missing, with no default 

私はドライブを取得する方法がわかりません。いくつかの解決策?

+1

ドライバ引数を渡す必要がありますか? driver = "ESRI Shapefile"ドキュメントには?writeOGRの例があります。 http://www.inside-r.org/packages/cran/rgdal/docs/writeOGR – chinsoon12

答えて

1

問題は、map2オブジェクトがシェイプファイルでなくなったため、シェイプファイルとして保存できないということです。 fortifyコマンドは、シェープファイル([email protected])のデータスロットをマッピング目的で使用するdata.frameオブジェクトに変換します。 ggplot2は、クラスspのオブジェクト(空間ポリゴン、すなわちシェイプファイル)を扱うことができません。私はあなたがこの「減らされた」または「サブセット化された」データを保存したいと思っています。あなたがする必要があるのは次のとおりです:

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 
関連する問題