将Shapefile与基于匹配列的行数组合在一起

时间:2017-03-17 20:06:25

标签: gis shapefile arcmap

我以前在ArcMap工作,我正在尝试将分析翻译成R。

我有4个shapefile,代表4个评估参数。每个shapefile都有一个名为Parameter_Score的唯一列。每个shapefile还有一个列,其中Parcel_ID与该像素相关联。每个shapefile具有不同的行数,因为每个参数对某些宗地的影响不同,因此列出了不同的宗地。

我想创建一个包含Parcel_ID信息的shapefile,以及每个Parameter的唯一分数。我的问题是shapefile都有不同数量的元素。我想基于Parcel_ID将它们合并在一起,并且值为0将填充未包含在某个参数中的Parcel的分数。

例如,我想采用这两个shapefile:

image

并创建一个新的shapefile /将它们合并到:

desired output

我查看了合并,加入等,但是没有一个允许我匹配匹配的地块并将0值添加到不匹配的地块。相反,行被删除,或者所有第二个参数的值都变为0.是否有人知道可以执行我要求的功能?非常感谢!

1 个答案:

答案 0 :(得分:0)

看着这个,只是注意到它可能是一个R问题,即使它没有标记为这样。这似乎是文本所说的内容。

R中有很多方法可以使用强大的灵活软件包,例如data.tabledplyr。但是使用base-R也很容易:

s1 <- data.frame(Parcel_ID=c(110,112,115,116),Score=c(1,2,3,4))
s2 <- data.frame(Parcel_ID=c(110,112,234,235),Score=c(5,6,7,8))

s3 <- merge(s1,s2,by="Parcel_ID",all=TRUE)
s3[is.na(s3)] <- 0
s3

产量:

  Parcel_ID Score.x Score.y
1       110       1       5
2       112       2       6
3       115       3       0
4       116       4       0
5       234       0       7
6       235       0       8
相关问题