在R中生成链接微地图的shapefile

在R中生成链接微地图的shapefile,r,maps,gis,R,Maps,Gis,我试图复制micromap R包中提供的例子,即美国50个州的贫困率链接图。我正试图用来自德国的Shapefile实现同样的结果。这是我的密码: library(micromap) library(ggplot2) setwd ('C:/Users/Jesus/Dropbox/linked maps/Chapter4') ger<-readShapePoly("germany3.shp") edPov<-read.csv('gerpoverty.csv') statePolys

我试图复制micromap R包中提供的例子,即美国50个州的贫困率链接图。我正试图用来自德国的Shapefile实现同样的结果。这是我的密码:

library(micromap)
library(ggplot2)

setwd ('C:/Users/Jesus/Dropbox/linked maps/Chapter4')
ger<-readShapePoly("germany3.shp")
edPov<-read.csv('gerpoverty.csv')

statePolys <- create_map_table(ger, 'VARNAME_1')
head(statePolys)
lmplot(stat.data=edPov, 
       map.data=statePolys, 
       panel.types=c('labels', 'dot','map'),
       panel.data=list('Id1','poverty',NA),
       ord.by='poverty',
       grouping=5, median.row=F,
       map.link=c('Id1','VARNAME_1'))
以下是zip文件中文件的链接:

有什么想法或建议吗


谢谢,

问题在于,
创建映射表(…)
将您提供的任何内容作为id列(
VARNAME\u 1
,在您的示例中),并将其放在输出中名为
id
的列中(
statePolys
)。现在有一个
statePolys$ID
列,其中包含
VARNAME_1
中的所有内容。当您告诉
lmplot(…)
加入
edPov$Id1
statePolys$VARNAME_1
时,它找不到后一列。另一种说法是,
map.link
的第二个元素必须始终是
ID
。所以这个代码是有效的(我在这里使用了
edPov
ger
中的ID_1列,因为它似乎包含一个德国国家ID)

库(micromap)
图书馆(GG2)

GerPoverity.csv
中的哪个列包含贫困数据?当我加载此文件时,它似乎包含与shapefile中的attributes表(
germany2.dbf
)相同的信息??显然文件有问题,现在应该更正。因此我从上面的链接重新下载了
germany.rar
,并将其解压缩。与之前一样,文件
gerpovery.csv
具有以下字段:
ID\u 0、ISO、NAME\u 0、ID\u 1、NAME\u 1、Id1、NL\u NAME\u 1、HASC\u 1、CC\u 1、TYPE\u 1、ENGTYPE\u 1、VALIDFR\u 1、VALIDTO\u 1、备注\u 1、形状长度、形状区域、x、y
。哪一个是贫困率?这是更新的链接,该列称为贫困。非常感谢,这似乎非常有效。我试图用墨西哥的数据复制另一个例子的这种编码。我基本上已经运行了代码,但是它消耗了大量的资源,所以我想知道是否有更简单的方法来执行它。以下是您感兴趣的链接:
Error in `[.data.frame`(DF, , ord.by) : undefined columns selected
library(micromap)
library(ggplot2)

ger<-readShapePoly("germany3.shp")
edPov<-read.csv('gerpoverty.csv')

statePolys <- create_map_table(ger, 'ID_1')  # ID_1 stored in statePolys$ID
head(statePolys)
lmplot(stat.data=edPov, 
       map.data=statePolys, 
       panel.types=c('labels', 'dot','map'),
       panel.data=list('Id1','poverty',NA),
       ord.by='poverty',
       grouping=5, median.row=F,
       map.link=c('ID_1','ID'))