使用maptools readShapePoly在R中打开SHP文件时出错

Ste*_*ior 18 r shapefile r-maptools

我是新来的R和是继上发现的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")
Run Code Online (Sandbox Code Playgroud)

这让我:

Error in getinfo.shape(filen) : Error opening SHP file
Run Code Online (Sandbox Code Playgroud)

我试过省略文件扩展名.我也尝试下载其他.shp文件也会抛出相同的错误.我也尝试使用完整的文件路径调用readShapePoly,这也不起作用.我正在使用R studio(mac OSX),但是使用标准R窗口我得到了同样的错误.我已经尝试过关于以前封闭威胁的建议"在Rstudio中打开SHP文件时出错",但无济于事.

编辑:错误是缺少.dbf文件.感谢@Spacedman的修复.

Aar*_*ier 16

我有一个类似的问题,这是因为我下载的zip包中有几个其他文件和'*.shp'形状文件.然后我只将形状文件移动到另一个文件夹,它不起作用.将所有文件包含在一起时,它很好,我可以readShapeSpatial()运行正常.

  • 这解决了我遇到的类似问题.您需要的不仅仅是.shp文件,因为文档说:`shapefile图层名称,当写入省略扩展名*.shp,*.shx和*.dbf时,它们会添加到函数中 (2认同)

mds*_*ner 6

忘记ggplotgpcclib.坚持maptools并且rgdal实际上提供了用于读取shapefile的工具.

不要只是说你已经尝试过"这个和那个",概述细节.例如,`file.exists("london_sport.shp")是否返回TRUE?

另外,你认为什么readShapePoly()是正确的功能?它只知道如何读的多边形形状文件,尝试readShapePoints()readShapeLines()为好.

如果可以,readOGR尽管有许多警告(包括几何类型),尝试哪些可以读取shapefile.

library(rgdal)
readOGR("~/Documents/R Projects/Intro to ggplot2", "london_sport")
Run Code Online (Sandbox Code Playgroud)

如果你可以报告所有这些事情,那么很可能有人可以提供帮助.