R 使用ggplot2打印地图导致数据丢失

R 使用ggplot2打印地图导致数据丢失,r,ggplot2,shapefile,R,Ggplot2,Shapefile,以下是我的数据: 可在此处下载形状文件 可以下载相应级别的数据 这是我的密码: library(stringr) library(plyr) library(rgdal) library(ggplot2) #load map map.gem<- readOGR(dsn="path to your shapefile", layer="VEC200_Commune") data <- data.frame(id=rownames(map.gem@data),

以下是我的数据:

可在此处下载形状文件

可以下载相应级别的数据

这是我的密码:

library(stringr)
library(plyr)
library(rgdal)   
library(ggplot2)

#load map
map.gem<- readOGR(dsn="path to your shapefile", layer="VEC200_Commune")


data <- data.frame(id=rownames(map.gem@data),
               BEZNR=map.gem@data$BEZIRKSNR)

data$id <- as.character(data$id)

bez <- read.csv("~/586.csv", sep=";")

#bez should look like this:
head(bez)
BEZNR    res_586
101      30.76
102      29.53
103      28.56
104      27.71
105      29.42
106      28.96

data1  <- merge(data, bez, by="BEZNR")
map.df <- fortify(map.gem)
map.df <- join(map.df, data1, by="id")

一些灰色区域是湖泊,这没有问题。但是地图中心的主要区域让我头疼。我希望有人能给我一个提示,尽管我不确定这个问题是否属于这里

评论太长

问题似乎是shapefile中的某些多边形的区域编号(BEZIRKSNR)=0。其中一些是湖泊,但许多不是。如下所示:

map.sub <- with(map.gem@data,map.gem[BEZIRKSNR==0&COUNTRY=="CH"&SEENAME=="N/A",])
ggplot(map.sub,aes(long,lat,group=group))+geom_polygon(fill="red")+coord_fixed()

由于没有任何轮询数据的BEZNR=0,因此这些区域的res_589值为
NA
。我不知道为什么这些地区没有BEZIRKSNR。

再次感谢您的宝贵意见!我不知道为什么BEZIRKSNR==0。我手动添加了如下的真值:
map。gem@data$BEZIRKSNR[地图。gem@data$KANTONSNR==4&map。gem@data$COUNTRY==“CH”]
map.sub <- with(map.gem@data,map.gem[BEZIRKSNR==0&COUNTRY=="CH"&SEENAME=="N/A",])
ggplot(map.sub,aes(long,lat,group=group))+geom_polygon(fill="red")+coord_fixed()
unique(map.sub@data$GEMNAME)