2017-12-02 77 views
0

我試圖追加具有不同字段的兩個SpatialPolygonDataFrames。我一直在使用spRbind,並使用spChFID爲每個數據幀創建了唯一的行標識符。但我仍然遇到以下錯誤。spRbind具有不同字段的SpatialPolygonDataFrames

錯誤rbind(deparse.level,...): 數的參數列不爲密蘇里州和伊利諾伊州匹配來自NHGIS

一個例子是塊級shape文件的日期。密蘇里具有17個字段和伊利諾伊具有18

密蘇里: 與驅動OGR數據源:ESRI shape文件 來源:」 ../nhgis0030_shapefile_tl2010_290_block_2010" ,層 「MO_block_2010」 與343565特徵 它具有17個字段

伊利諾伊: 與驅動OGR數據源:ESRI shape文件 來源:」 ../nhgis0030_shapefile_tl2010_170_block_2010" ,層 「IL_block_2010」 與451426個特徵 它18個字段 Integer64字段讀作串:ALAND10 AWATER10

回答

1

可以使用bind方法從raster軟件包這一

與往常一樣,先設置一些示例數據(你應該有包括一些你的問題):

library(raster) 
# example data 
p <- shapefile(system.file("external/lux.shp", package="raster")) 
p 
#class  : SpatialPolygonsDataFrame 
#features : 12 
#extent  : 5.74414, 6.528252, 49.44781, 50.18162 (xmin, xmax, ymin, ymax) 
#coord. ref. : +proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0 
#variables : 5 
#names  : ID_1,  NAME_1, ID_2, NAME_2, AREA 
#min values : 1, Diekirch, 1, Capellen, 76 
#max values : 3, Luxembourg, 9, Wiltz, 312 

p1 <- p[p$NAME_2=='Mersch', ] 
p2 <- p[p$NAME_2=='Diekirch', ] 
p3 <- p[p$NAME_2=='Remich', ] 

# remove all fields for p1 
p1 <- as(p1, 'SpatialPolygons') 
# remove one field for p3 
p3$NAME_1 <- NULL 
# add a new field 
p3$newfield <- 25 

現在我們有示例數據,請使用bind組合三個SpatialPolygon *對象:

x <- bind(p1, p2, p3) 

data.frame(x) 
# ID_1 NAME_1 ID_2 NAME_2 AREA newfield 
#1 NA  <NA> <NA>  <NA> NA  NA 
#2 1 Diekirch 2 Diekirch 218  NA 
#3 2  <NA> 7 Remich 129  25 
相關問題