多年来,我一直在使用以下方法将重要的.shp文件转换为R:
require(maptools)
require(rgeos)
shp <- lapply(list.files(pattern="*.shp"), readShapePoly)
如果我正在加载一些文件,它可以正常工作。但是,我正在尝试加载~1000个文件,但只是收到(常见)错误消息:
Error in getinfo.shape(filen) : Error opening SHP file
我一直在网上搜索,但找不到解决方案。工作目录设置正确,每个 shapefile 都存在随附的 .shx 和 .prj 文件.dbf。也
list.files(getwd(),pattern="shp")
返回每个文件。所以我有点困惑,我错过了一些明显的东西吗?
谢谢
要么将lapply
更改为循环,要么使用options(error=recover)
技巧找出哪个文件给您带来了麻烦。
不幸的是,R shapefile 函数往往对文件扩展名很挑剔。 确保共同构成 shapefile 的所有不同文件的所有大小写一致。
如果您认为这是一个特定的文件,则可以使用try
或tryCatch
来捕获错误。