【问题标题】:Importing additional shapefile data into R using ggplot2 and the "fortify" function使用 ggplot2 和“强化”功能将其他 shapefile 数据导入 R
【发布时间】:2013-08-18 02:55:08
【问题描述】:

我正在尝试使用 ggplot2 对 R 中美国国会选区的数据进行空间分析。

绘制国会选区地图工作正常。 shapefile 可在此处获得:http://dds.cr.usgs.gov/pub/data/nationalatlas/cgd113p010g.shp_nt00845.tar.gz

解压后,这是我正在运行的代码的相关部分:

library(maptools)
library(rgeos)
library(maps)
library(plyr)
library(ggplot2)


cds13 <- readShapeSpatial("cgd113p010g.shp")
cds13.map <- fortify(cds13)


p <- ggplot() + geom_polygon(aes(x=long, y=lat, group=group), data=cds13.map, fill="white", color="light gray")
p <- p + ylim(c(25,50)) + xlim(c(-125,-65))
p

但是,地理文件还有其他有用的数据,我想添加到强化数据框中(在本例中为 cds13.map)。例如,请参见 cds13$CONG_DIST(区号)和 cd13$CONG_REP(当前代表的姓名)。

有没有一种简单的方法来导入这些感兴趣的变量,最好是通过 fortify 中的调用(或者可能使用合并)?

【问题讨论】:

    标签: r ggplot2


    【解决方案1】:

    CONG_DISTCONG_REP 位于导入的 shapefile 的插槽数据 (cds13@data) 中。您可以使用函数merge() 将这些数据添加到强化的cds13.map。要合并这两个对象,您应该使用cds13.map 对象的id 列和cds13@data 对象的行名。

    cds13.merged<-merge(cds13.map,cds13@data,by.x="id",by.y="row.names")
    

    【讨论】:

    • 完美运行。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2021-07-05
    • 1970-01-01
    • 2018-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多