我以前在ArcMap工作,我正在尝试将分析翻译成R。
我有4个shapefile,代表4个评估参数。每个shapefile都有一个名为Parameter_Score的唯一列。每个shapefile还有一个列,其中Parcel_ID与该像素相关联。每个shapefile具有不同的行数,因为每个参数对某些宗地的影响不同,因此列出了不同的宗地。
我想创建一个包含Parcel_ID信息的shapefile,以及每个Parameter的唯一分数。我的问题是shapefile都有不同数量的元素。我想基于Parcel_ID将它们合并在一起,并且值为0将填充未包含在某个参数中的Parcel的分数。
例如,我想采用这两个shapefile:
并创建一个新的shapefile /将它们合并到:
我查看了合并,加入等,但是没有一个允许我匹配匹配的地块并将0值添加到不匹配的地块。相反,行被删除,或者所有第二个参数的值都变为0.是否有人知道可以执行我要求的功能?非常感谢!
答案 0 :(得分:0)
看着这个,只是注意到它可能是一个R问题,即使它没有标记为这样。这似乎是文本所说的内容。
R中有很多方法可以使用强大的灵活软件包,例如data.table
或dplyr
。但是使用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