我是R的新手,并且正在关注找到here的ggplot2包中的以下教程。但是,每当我尝试加载基本shapefile时,readShapePoly()函数都会抛出错误。我使用了以下代码:
library("ggplot2")
library("gpclib")
library("maptools")
setwd("~/Documents/R Projects/Intro to ggplot2")
#Intro to ggplot 2 contains the .shp file and associated data
sport <- readShapePoly("london_sport.shp")
让我:
Error in getinfo.shape(filen) : Error opening SHP file
我试过省略文件扩展名。我也尝试下载其他.shp文件也会抛出相同的错误。我也尝试使用完整的文件路径调用readShapePoly,这也不起作用。我正在使用R studio(mac OSX),但是使用标准R窗口我得到了同样的错误。我已经尝试过关于之前关闭的威胁“在Rstudio中打开SHP文件时出错”的建议,但无济于事。
编辑:错误是缺少.dbf文件。感谢@Spacedman的修复。
答案 0 :(得分:16)
我遇到了类似的问题,这是因为还有其他几个文件以及&#39; * .shp&#39;我下载的zip包中的shape文件。然后我只将形状文件移动到另一个文件夹,它没有工作。将所有文件包含在一起时,它很好,我可以readShapeSpatial()
运行正常。
答案 1 :(得分:6)
忘记ggplot
和gpcclib
。坚持实际提供读取shapefile工具的maptools
和rgdal
。
不要只是说你已经尝试过“这个和那个”,概述细节。例如,`file.exists(“london_sport.shp”)是否返回TRUE?
另外,是什么让你认为readShapePoly()
是正确的功能?它只知道如何阅读多边形shapefile,同时尝试readShapePoints()
和readShapeLines()
。
如果可以的话,尽管有很多警告(包括几何类型),尝试readOGR
可以读取shapefile。
library(rgdal)
readOGR("~/Documents/R Projects/Intro to ggplot2", "london_sport")
如果您可以报告所有这些事情,那么很可能有人会提供帮助。
答案 2 :(得分:2)
在同一文件夹中包含其中三个文件(扩展名:dbf,shp,shx)。
答案 3 :(得分:1)
如果这有助于任何人:
我遇到了同样的问题,但没有一个解决方案有效。最糟糕的是,我一直在使用一个我100%肯定以前工作的脚本。
事实证明,也可能是shapefile受损了。显然这可能发生在文件被操纵时(或者说我的地理学家朋友),所以下次你试图打开它时,没有明显的理由不会工作。下载它再次工作正常,但让我觉得有一个更珍贵的副本以防万一。
答案 4 :(得分:1)
还有一个,但没有多少自动解决方案帮助了我:
file<- readShapePoly(file.choose())
然后找到你的* .shp文件并运行它。
答案 5 :(得分:0)
我只是通过输入:
来设法通过我试图读取的shapefile来解决这个问题file<- readShapeSpatial("filename.shp")
而不是输入完整的文件路径。
在此之前,我尝试了所有建议,包括确保.dbf
和.shx
文件也存在。不知道为什么会这样。
答案 6 :(得分:0)
我遇到了同样的问题。我发现基本上你需要三个文件:.shp,.shx和.dbf