如何解决R中我的shapefile中省份标签错误的问题?

时间:2019-08-14 10:36:29

标签: r projection shapefile tmap

我有一个菲律宾的shapefile,其中包含每个省的所有正确标签。在删除了我将不使用的一些省份之后,将数据聚合到单个数据框中,然后将协变量附加到shapefile上,我遇到了麻烦。使用tmap创建一些地图,省份被错误贴标签,因此将不同的数据应用于不同的省份。我正在使用这些数据进行时空分析,因此重要的是省份位于正确的位置。

我尝试过回退一些shapefile,但似乎不起作用。

#reading in shapefile
shp <- readOGR(".","province.csv")

#removing provinces not in data from shapefile                         
myshp82=shp
shp@data$prov=as.character(shp@data$prov)

ind=shp@data$prov%in% mydata$prov

shp.subset=shp[ind,]


#attaching covariates to shapefile for plotting, myagg is my data frame. 
#The shape files are divided in four different time periods. 

myagg_time1=myagg[myagg$period==1,]
myagg_time2=myagg[myagg$period==2,]
myagg_time3=myagg[myagg$period==3,]
myagg_time4=myagg[myagg$period==4,]

myshptime1=myshptime2=myshptime3=myshptime4=shp
myshptime1@data=merge(myshptime1@data, myagg_time1, by='prov',all.x=TRUE)
myshptime2@data=merge(myshptime2@data, myagg_time2, by='prov',all.x=TRUE)
myshptime3@data=merge(myshptime3@data, myagg_time3, by='prov',all.x=TRUE)
myshptime4@data=merge(myshptime4@data, myagg_time4, by='prov',all.x=TRUE)

#desc maps. Here's the code I've been using for one of the maps. 
Per1= tm_shape(myshptime1)+
  tm_polygons(c('total_incomeMed','IRA_depMean','pov'), title=c('Total Income', 'IRA', 'Poverty (%)'))+
  tm_facets(sync = TRUE, ncol=3)

#sample data from my data sheet "myagg". First column is provinces. 

                     period   counts    total_income_MED       IRA_depMean
Agusan del Norte.1     1       2          119.33052              0.8939136
Agusan del Norte.2     2       0          280.96928              0.8939136
Agusan del Norte.3     3       1          368.30082              0.8939136      
Agusan del Norte.4     4       0          368.30082              0.8950379  
Aklan.5                1       0          129.63132              0.8716863  
Aklan.6                2       3          282.95535              0.8716863          
Aklan.7                3       3          460.29969              0.8716863      
Aklan.8                4       0          460.29969              0.8437920
Albay.9                1       0          280.12221              0.8696165
Albay.10               2       3          453.05098              0.8696165
Albay.11               3       1          720.40732              0.8696165
Albay.12               4       0          720.40732              0.8254676

基本上,上面的tmap代码针对每个不同的协变量(“ total_incomeMed”,“ IRA_depMean”,“ pov”)在此时间段并排创建了三个地图。发生这种情况,但是省份标签错误,数据与省份名称相关。我只需要正确标记的省份!

对不起,如果这没有道理。很高兴在需要时澄清更多信息。

0 个答案:

没有答案