此问题可能与an earlier unanswered one重复。我还有问题。
我正在尝试使用zipcode shapefile并出现以下错误:
tract <- readOGR(dsn = ".", layer = "cb_2013_us_zcta510_500k")
tract<-fortify(tract, region="GEOID10")
Error: isTRUE(gpclibPermitStatus()) is not TRUE
我已经尝试安装gpclib来修复此问题,但后来我收到以下错误:
install.packages("gpclib")
Installing package into ‘C:/Users/Nick/Documents/R/win-library/3.2’
(as ‘lib’ is unspecified)
Package which is only available in source form, and may need compilation of C/C++/Fortran: ‘gpclib’
These will not be installed
帮助?
答案 0 :(得分:31)
你可以查看Hadley的master文件ggplot2 / R / fortify-spatial.r。基于this外部链接,我的理解是第31-34行(当前形式)用于读取类似
的内容# Union together all polygons that make up a region
try_require(c("gpclib", "maptools"))
unioned <- unionSpatialPolygons(cp, invert(polys))
那么当时解决问题的一种方法是打开许可证
library(rgdal)
library(maptools)
if (!require(gpclib)) install.packages("gpclib", type="source")
gpclibPermit()
正如@rcs,@ Edzer Pebesma和answer提到的那样,rgeos
应解决最近安装的问题。
答案 1 :(得分:12)
我遇到了同样的问题,但解决方案与上面列出的解决方案略有不同。
正如其他人所提到的,问题是对maptools所需的对gpclib的依赖。
但是,在加载maptools之后,它提供了以下消息......
> library('maptools')
Checking rgeos availability: FALSE
Note: when rgeos is not available, polygon geometry computations in maptools depend on gpclib,
which has a restricted licence. It is disabled by default;
to enable gpclib, type gpclibPermit()
因此可以使用rgeos代替gpclib。要解决,我做了以下......
install.packages('rgeos', type='source')
install.packages('rgdal', type='source')
重新安装rgdal会删除对gpclib的依赖,并指向rgeos。
希望这有用。
答案 2 :(得分:3)
我在其他地方学到了这个答案:我必须输入
install.packages("gpclib", type="source")
它运作得很好。