gpt4 book ai didi

r - 代码不适用于其他 shp 文件

转载 作者:行者123 更新时间:2023-12-01 16:26:32 26 4
gpt4 key购买 nike

here中提出的问题,已解决,但不知何故它不适用于不同的 shp 文件。知道为什么吗?我一直在尝试使用 Coloring the states according to a given variable using ggplot 中的 shp 文件(第一个链接)

代码:

library(maptools)
library(ggplot2)
download.file("http://geocommons.com/overlays/204743.zip", destfile="204743.zip")
dir.create("ind")
unzip("204743.zip", exdir="ind")
india <- readShapeSpatial("ind/india_state.shp")
f_india <- fortify(india)
i <- sapply(india@data$NAME, function(x) agrep(x, data$Row.Labels, max.distance=.3, ignore.case=T)[1])
india@data$maj <- data$MAJORITY[i]
f_india <- merge(x=f_india, y=india@data, by.x="id", by.y="ID")
ggplot(f_india, aes(x=long, y=lat, group=group, fill=maj)) +
geom_polygon(colour="black")

输出错误:

enter image description here

如有任何帮助,我们将不胜感激。

最佳答案

您的合并对每一行进行多次匹配,从而在数据中创建重复的行。此外,还存在排序问题,当没有匹配的行时,您会丢失多边形。

替换

f_india <- merge(x=f_india, y=india@data, by.x="id", by.y="ID")

f_india <- merge(x=f_india, y=unique(india@data), by.x="id", by.y="ID",all.x=T)
f_india <- f_india[with(f_india, order(id, order)), ]

编辑:

这是我得到的输出。灰色多边形是由名称不匹配引起的,但这是我能看到的唯一问题。

working map

关于r - 代码不适用于其他 shp 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24039621/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com