错误:isTRUE(gpclibPermitStatus())不为TRUE。

32

这个问题可能是之前未回答的一个问题的重复。我仍然有这个问题。

我正在尝试使用一个邮政编码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

需要帮助吗?


你的系统上安装了 rgeos 吗?http://cran.r-project.org/web/packages/rgeos/index.html - rcs
1
现在还是一样,我仍然有同样的问题。 - garson
17
如果您已经安装了rgdalrgeosggplot2,重新启动R后就不应该再看到这个错误了。现在不再需要使用gpclib。 - Edzer Pebesma
3个回答

41
你可以查看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应该可以解决最近版本的安装问题。


19

我遇到了同样的问题,但解决方案与上面列出的略有不同。

正如其他人所提到的那样,问题在于对gpclib的依赖,而maptools需要它。

然而,在加载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。

希望这有所帮助。


1
在安装了rgeos和maptools之后重新安装rgdal对我有帮助! - Jens

7
我在其他地方学到了这个答案:我必须输入

install.packages("gpclib", type="source")

然后它就可以正常工作了。


3
请注意,gpclib软件包仅限非商业使用;其限制性许可证是放弃依赖它的主要原因。请留意。 - Edzer Pebesma

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接