spRbind具有不同字段的SpatialPolygonDataFrames

我试图追加具有不同字段的两个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

回答:

可以使用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

以上是 spRbind具有不同字段的SpatialPolygonDataFrames 的全部内容, 来源链接: utcz.com/qa/257821.html

回到顶部